animation2code benchmark
For best compatibility, please view this dashboard in a Chrome browser.
← back to Camera following: Step8

model output

Claude Sonnet 4.6

Camera following: Step8

A 0.84T 0.50
compare with ground truth →
1Looking at the frames, I can see three blue spheres moving in a circular/orbital pattern. The balls appear to rotate around a center point - when they're in a diagonal line going bottom-left to top-right, then they cluster together vertically, then spread horizontally, then cluster again. The motion is like three balls orbiting in a circle with different phases.
2
3Key observations:
4- Three blue spheres with radial gradient (light blue top-left, dark purple/blue bottom-right)
5- They move in a circular orbit pattern
6- Each ball is offset by ~120° from each other
7- The group also moves around the screen slightly
8- Reflections below each ball
9- Background: light gray/lavender gradient
10
11<!DOCTYPE html>
12<html>
13<head>
14<style>
15* { margin: 0; padding: 0; box-sizing: border-box; }
16
17body {
18  width: 100vw;
19  height: 100vh;
20  overflow: hidden;
21  background: radial-gradient(ellipse at 55% 40%, #ffffff 0%, #d8dae8 60%, #c5c8d8 100%);
22}
23
24.scene {
25  position: absolute;
26  width: 100%;
27  height: 100%;
28  animation: sceneMove 4s ease-in-out infinite;
29}
30
31@keyframes sceneMove {
32  0%   { transform: translate(10%, 5%); }
33  25%  { transform: translate(5%, -5%); }
34  50%  { transform: translate(-10%, -5%); }
35  75%  { transform: translate(-5%, 5%); }
36  100% { transform: translate(10%, 5%); }
37}
38
39.orbit-container {
40  position: absolute;
41  left: 50%;
42  top: 50%;
43  width: 0;
44  height: 0;
45}
46
47.ball-wrapper {
48  position: absolute;
49  transform-origin: 0 0;
50  animation: orbit 4s linear infinite;
51}
52
53.ball-wrapper:nth-child(1) { animation-delay: 0s; }
54.ball-wrapper:nth-child(2) { animation-delay: -1.333s; }
55.ball-wrapper:nth-child(3) { animation-delay: -2.666s; }
56
57@keyframes orbit {
58  0%   { transform: rotate(0deg)   translate(70px, 0) rotate(0deg); }
59  100% { transform: rotate(360deg) translate(70px, 0) rotate(-360deg); }
60}
61
62.ball {
63  position: absolute;
64  border-radius: 50%;
65  transform: translate(-50%, -50%);
66}
67
68.ball-wrapper:nth-child(1) .ball {
69  width: 90px; height: 90px;
70  background: radial-gradient(circle at 35% 30%, #7eb8ff, #5566ff 40%, #4433cc 75%, #3322aa);
71}
72
73.ball-wrapper:nth-child(2) .ball {
74  width: 75px; height: 75px;
75  background: radial-gradient(circle at 35% 30%, #88ccff, #6677ff 40%, #5544dd 75%, #3322bb);
76}
77
78.ball-wrapper:nth-child(3) .ball {
79  width: 60px; height: 60px;
80  background: radial-gradient(circle at 35% 30%, #99ddff, #7799ff 40%, #6655ee 75%, #4433cc);
81}
82
83.reflection-wrapper {
84  position: absolute;
85  transform-origin: 0 0;
86  animation: orbit 4s linear infinite;
87}
88
89.reflection-wrapper:nth-child(4) { animation-delay: 0s; }
90.reflection-wrapper:nth-child(5) { animation-delay: -1.333s; }
91.reflection-wrapper:nth-child(6) { animation-delay: -2.666s; }
92
93.reflection {
94  position: absolute;
95  border-radius: 50%;
96  transform: translate(-50%, 0) scaleY(0.3);
97  opacity: 0.25;
98  filter: blur(3px);
99}
100
101.reflection-wrapper:nth-child(4) .reflection {
102  width: 90px; height: 30px;
103  top: 45px;
104  background: radial-gradient(ellipse, #5544cc, transparent 70%);
105}
106
107.reflection-wrapper:nth-child(5) .reflection {
108  width: 75px; height: 25px;
109  top: 37px;
110  background: radial-gradient(ellipse, #5544cc, transparent 70%);
111}
112
113.reflection-wrapper:nth-child(6) .reflection {
114  width: 60px; height: 20px;
115  top: 30px;
116  background: radial-gradient(ellipse, #5544cc, transparent 70%);
117}
118</style>
119</head>
120<body>
121<div class="scene">
122  <div class="orbit-container">
123    <div class="ball-wrapper"><div class="ball"></div></div>
124    <div class="ball-wrapper"><div class="ball"></div></div>
125    <div class="ball-wrapper"><div class="ball"></div></div>
126    <div class="reflection-wrapper"><div class="reflection"></div></div>
127    <div class="reflection-wrapper"><div class="reflection"></div></div>
128    <div class="reflection-wrapper"><div class="reflection"></div></div>
129  </div>
130</div>
131
132<script>
133  // Adjust orbit to be elliptical (more horizontal than vertical) to match the video
134  const style = document.createElement('style');
135  style.textContent = `
136    @keyframes orbit {
137      0%   { transform: rotate(0deg) translate(80px, 0) rotate(0deg); }
138      100% { transform: rotate(360deg) translate(80px, 0) rotate(-360deg); }
139    }
140    .orbit-container {
141      left: 50%;
142      top: 52%;
143    }
144  `;
145  document.head.appendChild(style);
146</script>
147</body>
148</html>