animation2code benchmark
For best compatibility, please view this dashboard in a Chrome browser.
← back to Exploring Bourbon

model output

Gemini 3 Flash Preview

Exploring Bourbon

A 0.81T 0.25
compare with ground truth →
1<!DOCTYPE html>
2<html lang="en">
3<head>
4    <meta charset="UTF-8">
5    <meta name="viewport" content="width=device-width, initial-scale=1.0">
6    <title>Arch Morph Animation</title>
7    <style>
8        /* 
9           Analysis of the video:
10           - Background: A muted brownish-mauve color (#7c6a6a).
11           - Shape: A light lime-green (#c7e48c) arch-like shape.
12           - Movement: The shape morphs its corner radii every 0.5 seconds, 
13             alternating between a top-rounded "arch" and a bottom-rounded "cup".
14           - Timing: Approximately a 1-second full cycle (0.5s for each state transition).
15           - Easing: Smooth ease-in-out transition.
16        */
17
18        :root {
19            --bg-color: #7c6a6a;
20            --shape-color: #c7e48c;
21            --animation-speed: 1s;
22        }
23
24        * {
25            box-sizing: border-box;
26        }
27
28        body {
29            margin: 0;
30            padding: 0;
31            display: flex;
32            justify-content: center;
33            align-items: center;
34            height: 100vh;
35            background-color: var(--bg-color);
36            overflow: hidden;
37        }
38
39        .container {
40            position: relative;
41            width: 100px;
42            height: 100px;
43            display: flex;
44            justify-content: center;
45            align-items: center;
46        }
47
48        .morphed-shape {
49            width: 50px;
50            height: 56px;
51            background-color: var(--shape-color);
52            /* Initial state: Rounded top, slightly rounded bottom corners */
53            border-radius: 25px 25px 4px 4px;
54            
55            /* Animation handles the border-radius morphing */
56            animation: morphRadius var(--animation-speed) ease-in-out infinite;
57            
58            /* Subtle shadow to match the video's depth */
59            box-shadow: inset 0 -2px 4px rgba(0,0,0,0.05);
60        }
61
62        @keyframes morphRadius {
63            0%, 100% {
64                /* Arch Shape (Rounded Top) */
65                border-radius: 25px 25px 4px 4px;
66                transform: scaleY(1);
67            }
68            25% {
69                /* Transition squash effect for more fluid motion */
70                transform: scaleY(0.95);
71            }
72            50% {
73                /* Cup Shape (Rounded Bottom) */
74                border-radius: 4px 4px 25px 25px;
75                transform: scaleY(1);
76            }
77            75% {
78                /* Transition squash effect */
79                transform: scaleY(0.95);
80            }
81        }
82
83        /* 
84           Optional: Adding a slight vertical oscillation if the video 
85           appears to "jump" slightly during the morph. 
86        */
87        @keyframes float {
88            0%, 100% { transform: translateY(0); }
89            50% { transform: translateY(2px); }
90        }
91    </style>
92</head>
93<body>
94
95    <div class="container">
96        <div class="morphed-shape"></div>
97    </div>
98
99    <script>
100        /**
101         * The animation is handled entirely via CSS keyframes for performance 
102         * and accuracy relative to the provided timestamps (0.0s, 0.5s, 1.0s).
103         * 
104         * CSS border-radius is highly performant for morphing simple geometric 
105         * shapes like this.
106         */
107    </script>
108</body>
109</html>