Back to All Results
Input static SVG SVG Image
Input text prompt
<svg>...</svg>
Move the text DE down by 500px in a second. Then, translate the top left face to the right to be adjacent to the top right face. At the same time, slide the bottom left face to border the left side of the bottom right face. Finally, raise both of the bottom faces so that their top side align with the bottom side of the top right face.

MoVer program
o_1 = iota(Object, lambda o: id(o, "custom-DE"))
o_2 = iota(Object, lambda o: id(o, "top-left-face"))
o_3 = iota(Object, lambda o: id(o, "top-right-face"))
o_4 = iota(Object, lambda o: id(o, "bottom-left-face"))
o_5 = iota(Object, lambda o: id(o, "bottom-right-face"))

m_1 = iota(Motion, lambda m: type(m, "translate") and direction(m, [0.0, -1.0]) and magnitude(m, 500.0) and duration(m, 1.0) and agent(m, o_1))
m_2 = iota(Motion, lambda m: type(m, "translate") and direction(m, [1.0, 0.0]) and post(m, s_left_border(o_2, o_3)) and agent(m, o_2))
m_3 = iota(Motion, lambda m: type(m, "translate") and direction(m, [1.0, 0.0]) and post(m, s_left_border(o_4, o_5)) and agent(m, o_4))
m_4 = iota(Motion, lambda m: type(m, "translate") and direction(m, [0.0, 1.0]) and post(m, s_bottom_border(o_4, o_3)) and agent(m, o_4))
m_5 = iota(Motion, lambda m: type(m, "translate") and direction(m, [0.0, 1.0]) and post(m, s_bottom_border(o_5, o_3)) and agent(m, o_5))

t_before(m_1, m_2)
t_while(m_2, m_3)
t_before(m_3, m_4)
t_before(m_3, m_5)
Initial animation without correction
Verification report
o_1 = iota(Object, lambda o: id(o, "custom-DE")): True
id: True

o_2 = iota(Object, lambda o: id(o, "top-left-face")): True
id: True

o_3 = iota(Object, lambda o: id(o, "top-right-face")): True
id: True

o_4 = iota(Object, lambda o: id(o, "bottom-left-face")): True
id: True

o_5 = iota(Object, lambda o: id(o, "bottom-right-face")): True
id: True

m_1 = iota(Motion, lambda m: type(m, "translate") and direction(m, [0.0, -1.0]) and magnitude(m, 500.0) and duration(m, 1.0) and agent(m, o_1)): True
type: True
direction: True
magnitude: True
duration: True
agent: True

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

m_3 = iota(Motion, lambda m: type(m, "translate") and direction(m, [1.0, 0.0]) and post(m, s_left_border(o_4, o_5)) and agent(m, o_4)): False
type: True
direction: True
post: False
s_left_border: True
agent: True

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

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

t_before(m_1, m_2): False
t_before: False

t_while(m_2, m_3): False
t_while: False

t_before(m_3, m_4): False
t_before: False

t_before(m_3, m_5): False
t_before: False

The text prompt asks to move the face pieces to form a complete face after the letters DE move down. In this initial animation, the text DE moves down correctly. However, the face pieces do not move correctly to form a complete face.


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

o_2 = iota(Object, lambda o: id(o, "top-left-face")): True
id: True

o_3 = iota(Object, lambda o: id(o, "top-right-face")): True
id: True

o_4 = iota(Object, lambda o: id(o, "bottom-left-face")): True
id: True

o_5 = iota(Object, lambda o: id(o, "bottom-right-face")): True
id: True

m_1 = iota(Motion, lambda m: type(m, "translate") and direction(m, [0.0, -1.0]) and magnitude(m, 500.0) and duration(m, 1.0) and agent(m, o_1)): True
type: True
direction: True
magnitude: True
duration: True
agent: True

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

m_3 = iota(Motion, lambda m: type(m, "translate") and direction(m, [1.0, 0.0]) and post(m, s_left_border(o_4, o_5)) and agent(m, o_4)): True
type: True
direction: True
post: True
s_left_border: True
agent: True

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

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

t_before(m_1, m_2): False
t_before: False

t_while(m_2, m_3): False
t_while: False

t_before(m_3, m_4): False
t_before: False

t_before(m_3, m_5): False
t_before: False

In this correction iteration, the two bottom pieces of the face now move correctly, but the top pieces do not.


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

o_2 = iota(Object, lambda o: id(o, "top-left-face")): True
id: True

o_3 = iota(Object, lambda o: id(o, "top-right-face")): True
id: True

o_4 = iota(Object, lambda o: id(o, "bottom-left-face")): True
id: True

o_5 = iota(Object, lambda o: id(o, "bottom-right-face")): True
id: True

m_1 = iota(Motion, lambda m: type(m, "translate") and direction(m, [0.0, -1.0]) and magnitude(m, 500.0) and duration(m, 1.0) and agent(m, o_1)): True
type: True
direction: True
magnitude: True
duration: True
agent: True

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

m_3 = iota(Motion, lambda m: type(m, "translate") and direction(m, [1.0, 0.0]) and post(m, s_left_border(o_4, o_5)) and agent(m, o_4)): True
type: True
direction: True
post: True
s_left_border: True
agent: True

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

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

t_before(m_1, m_2): False
t_before: False

t_while(m_2, m_3): False
t_while: False

t_before(m_3, m_4): False
t_before: False

t_before(m_3, m_5): False
t_before: False

Here, the top pieces still do not come together, and the bottom pieces move up too much. The animation is still not fully correct.


Correction iteration 3
Verification report of correction iteration 3
o_1 = iota(Object, lambda o: id(o, "custom-DE")): True
id: True

o_2 = iota(Object, lambda o: id(o, "top-left-face")): True
id: True

o_3 = iota(Object, lambda o: id(o, "top-right-face")): True
id: True

o_4 = iota(Object, lambda o: id(o, "bottom-left-face")): True
id: True

o_5 = iota(Object, lambda o: id(o, "bottom-right-face")): True
id: True

m_1 = iota(Motion, lambda m: type(m, "translate") and direction(m, [0.0, -1.0]) and magnitude(m, 500.0) and duration(m, 1.0) and agent(m, o_1)): True
type: True
direction: True
magnitude: True
duration: True
agent: True

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

m_3 = iota(Motion, lambda m: type(m, "translate") and direction(m, [1.0, 0.0]) and post(m, s_left_border(o_4, o_5)) and agent(m, o_4)): True
type: True
direction: True
post: True
s_left_border: True
agent: True

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

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

t_before(m_1, m_2): True
t_before: True

t_while(m_2, m_3): True
t_while: True

t_before(m_3, m_4): False
t_before: False

t_before(m_3, m_5): False
t_before: False

In this iteration, the top pieces now move correctly to form a complete face. However, the bottom pieces still move up too much. The animation is still not fully correct.


Correction iteration 4
Verification report of correction iteration 4
o_1 = iota(Object, lambda o: id(o, "custom-DE")): True
id: True

o_2 = iota(Object, lambda o: id(o, "top-left-face")): True
id: True

o_3 = iota(Object, lambda o: id(o, "top-right-face")): True
id: True

o_4 = iota(Object, lambda o: id(o, "bottom-left-face")): True
id: True

o_5 = iota(Object, lambda o: id(o, "bottom-right-face")): True
id: True

m_1 = iota(Motion, lambda m: type(m, "translate") and direction(m, [0.0, -1.0]) and magnitude(m, 500.0) and duration(m, 1.0) and agent(m, o_1)): True
type: True
direction: True
magnitude: True
duration: True
agent: True

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

m_3 = iota(Motion, lambda m: type(m, "translate") and direction(m, [1.0, 0.0]) and post(m, s_left_border(o_4, o_5)) and agent(m, o_4)): True
type: True
direction: True
post: True
s_left_border: True
agent: True

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

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

t_before(m_1, m_2): True
t_before: True

t_while(m_2, m_3): True
t_while: True

t_before(m_3, m_4): True
t_before: True

t_before(m_3, m_5): True
t_before: True

In this iteration, all the face pieces now move correctly to form a complete face after the letters DE move down. The animation is now fully correct.