Back to All Results
Input static SVG SVG Image
Input text prompt
<svg>...</svg>
Move the orange circle to slightly above the rectangular shape. In the meantime, rotate the letter H clockwise by 90 degrees.

MoVer program
o_1 = iota(Object, lambda o: color(o, "orange") and shape(o, "circle"))
o_2 = iota(Object, lambda o: shape(o, "rectangle"))
o_3 = iota(Object, lambda o: id(o, "letter-H"))

m_1 = iota(Motion, lambda m: type(m, "translate") and post(m, s_top(o_1, o_2)) and agent(m, o_1))
m_2 = iota(Motion, lambda m: type(m, "rotate") and direction(m, "clockwise") and magnitude(m, 90.0) and agent(m, o_3))

t_while(m_1, m_2)
Initial animation without correction
Verification report
o_1 = iota(Object, lambda o: color(o, "orange") and shape(o, "circle")): True
color: True
shape: True

o_2 = iota(Object, lambda o: shape(o, "rectangle")): True
shape: True

o_3 = iota(Object, lambda o: id(o, "letter-H")): True
id: True

m_1 = iota(Motion, lambda m: type(m, "translate") and post(m, s_top(o_1, o_2)) and agent(m, o_1)): False
type: True
post: False
s_top: False
agent: True

m_2 = iota(Motion, lambda m: type(m, "rotate") and direction(m, "clockwise") and magnitude(m, 90.0) and agent(m, o_3)): True
type: True
direction: True
magnitude: True
agent: True

t_while(m_1, m_2): False
t_while: False

In this initial animation, the report indicates that the translation of the orange circle m_1 is false because the circle never reaches above the rectangle and therefore both post() and s_top() are false. The rotation of the letter H m_2 is true because it rotates 90 degrees clockwise. t_while() is false because m_1 is false.


Correction iteration 1
Verification report of correction iteration 1
o_1 = iota(Object, lambda o: color(o, "orange") and shape(o, "circle")): True
color: True
shape: True

o_2 = iota(Object, lambda o: shape(o, "rectangle")): True
shape: True

o_3 = iota(Object, lambda o: id(o, "letter-H")): True
id: True

m_1 = iota(Motion, lambda m: type(m, "translate") and post(m, s_top(o_1, o_2)) and agent(m, o_1)): True
type: True
post: True
s_top: True
agent: True

m_2 = iota(Motion, lambda m: type(m, "rotate") and direction(m, "clockwise") and magnitude(m, 90.0) and agent(m, o_3)): True
type: True
direction: True
magnitude: True
agent: True

t_while(m_1, m_2): True
t_while: True

In this iteration, the translation of the orange circle m_1 has been corrected to reach above the rectangle shape and therefore m_1 is now true. t_while() is true because both m_1 and m_2 are true and they overlap in time.