Back to All Results
Input static SVG SVG Image
Input text prompt
<svg>...</svg>
Rotate the first letter W around the pink circle by 180 degrees. Then rotate the second letter W the same way. Finally, move the letter O down so that its bottom align with the rotated letter W

MoVer program
o_1 = iota(Object, lambda o: id(o, "letter-w-1"))
o_2 = iota(Object, lambda o: id(o, "letter-w-2"))
o_3 = iota(Object, lambda o: id(o, "letter-o"))
o_4 = iota(Object, lambda o: color(o, "pink") and shape(o, "circle"))

m_1 = iota(Motion, lambda m: type(m, "rotate") and magnitude(m, 180.0) and origin(m, get_pos(o_4)) and agent(m, o_1))
m_2 = iota(Motion, lambda m: type(m, "rotate") and magnitude(m, 180.0) and origin(m, get_pos(o_4)) and agent(m, o_2))
m_3 = iota(Motion, lambda m: type(m, "translate") and direction(m, [0.0, -1.0]) and post(m, s_bottom_border(o_3, o_2)) and agent(m, o_3))

t_before(m_1, m_2)
t_before(m_2, m_3)
Initial animation without correction
Verification report
o_1 = iota(Object, lambda o: id(o, "letter-w-1")): True
id: True

o_2 = iota(Object, lambda o: id(o, "letter-w-2")): True
id: True

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

o_4 = iota(Object, lambda o: color(o, "pink") and shape(o, "circle")): True
color: True
shape: True

m_1 = iota(Motion, lambda m: type(m, "rotate") and magnitude(m, 180.0) and origin(m, get_pos(o_4)) and agent(m, o_1)): True
type: True
magnitude: True
origin: True
agent: True

m_2 = iota(Motion, lambda m: type(m, "rotate") and magnitude(m, 180.0) and origin(m, get_pos(o_4)) and agent(m, o_2)): True
type: True
magnitude: True
origin: True
agent: True

m_3 = iota(Motion, lambda m: type(m, "translate") and direction(m, [0.0, -1.0]) and post(m, s_bottom_border(o_3, o_2)) and agent(m, o_3)): False
type: True
direction: False
post: False
s_bottom_border: True
agent: True

t_before(m_1, m_2): True
t_before: True

t_before(m_2, m_3): False
t_before: False

In this initial animation, the rotations of the letter Ws are correct. However, the letter O does not move at all to align its bottom with the rotated letter Ws. Therefore, m_3 is false.


Correction iteration 1
Verification report of correction iteration 1
o_1 = iota(Object, lambda o: id(o, "letter-w-1")): True
id: True

o_2 = iota(Object, lambda o: id(o, "letter-w-2")): True
id: True

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

o_4 = iota(Object, lambda o: color(o, "pink") and shape(o, "circle")): True
color: True
shape: True

m_1 = iota(Motion, lambda m: type(m, "rotate") and magnitude(m, 180.0) and origin(m, get_pos(o_4)) and agent(m, o_1)): True
type: True
magnitude: True
origin: True
agent: True

m_2 = iota(Motion, lambda m: type(m, "rotate") and magnitude(m, 180.0) and origin(m, get_pos(o_4)) and agent(m, o_2)): True
type: True
magnitude: True
origin: True
agent: True

m_3 = iota(Motion, lambda m: type(m, "translate") and direction(m, [0.0, -1.0]) and post(m, s_bottom_border(o_3, o_2)) and agent(m, o_3)): False
type: True
direction: True
post: False
s_bottom_border: True
agent: True

t_before(m_1, m_2): True
t_before: True

t_before(m_2, m_3): False
t_before: False

In the first correction attempt, the letter O now translates down, but it does not move enough to align its bottom with the rotated letter W.


Correction iteration 2
Verification report of correction iteration 2
o_1 = iota(Object, lambda o: id(o, "letter-w-1")): True
id: True

o_2 = iota(Object, lambda o: id(o, "letter-w-2")): True
id: True

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

o_4 = iota(Object, lambda o: color(o, "pink") and shape(o, "circle")): True
color: True
shape: True

m_1 = iota(Motion, lambda m: type(m, "rotate") and magnitude(m, 180.0) and origin(m, get_pos(o_4)) and agent(m, o_1)): True
type: True
magnitude: True
origin: True
agent: True

m_2 = iota(Motion, lambda m: type(m, "rotate") and magnitude(m, 180.0) and origin(m, get_pos(o_4)) and agent(m, o_2)): True
type: True
magnitude: True
origin: True
agent: True

m_3 = iota(Motion, lambda m: type(m, "translate") and direction(m, [0.0, -1.0]) and post(m, s_bottom_border(o_3, o_2)) and agent(m, o_3)): True
type: True
direction: True
post: True
s_bottom_border: True
agent: True

t_before(m_1, m_2): True
t_before: True

t_before(m_2, m_3): True
t_before: True

In this correction iteration, the letter O now moves down to align its bottom with the rotated letter Ws. The animation is now fully correct.