← back to 4 'counter rotation' effectscompare with ground truth →
model output
Gemini 3 Flash Preview
4 'counter rotation' effects
A 0.69T 0.36
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>3x3 Grid Spinner</title>
7 <style>
8 /*
9 Analysis:
10 - Background: Dark gray (#1a1a1a)
11 - Colors:
12 Red: #a71a30
13 Blue: #163555
14 White: #ffffff
15 - Pattern: 3x3 checkerboard with white center
16 - Animation: 4 second loop.
17 Every 0.5s the grid transitions between a "compact diamond" and an "expanded grid".
18 The rotation is continuous counter-clockwise.
19 */
20
21 body {
22 background-color: #1a1a1a;
23 margin: 0;
24 display: flex;
25 justify-content: center;
26 align-items: center;
27 height: 100vh;
28 overflow: hidden;
29 }
30
31 .loader {
32 display: grid;
33 grid-template-columns: repeat(3, 18px);
34 grid-template-rows: repeat(3, 18px);
35 /* Centering the grid items within the loader container */
36 justify-content: center;
37 align-content: center;
38 /* Animation timing matches the 4s video loop */
39 animation: loader-spin 4s infinite ease-in-out;
40 /* Prevent the container from shifting by giving it a fixed size large enough for the grid */
41 width: 100px;
42 height: 100px;
43 }
44
45 .cell {
46 width: 18px;
47 height: 18px;
48 border-radius: 4px; /* Matches the rounded corners in the video */
49 }
50
51 /* Pattern mapping to recreate the video's look */
52 .red { background-color: #a71a30; }
53 .blue { background-color: #163555; }
54 .white { background-color: #ffffff; }
55
56 @keyframes loader-spin {
57 /*
58 The cycle repeats every 0.5s (12.5% of 4s).
59 Grid (rotated 0, 90, 180...) vs Diamond (rotated 45, 135, 225...)
60 */
61 0% { transform: rotate(45deg); gap: 0px; }
62 12.5% { transform: rotate(0deg); gap: 10px; }
63 25% { transform: rotate(-45deg); gap: 0px; }
64 37.5% { transform: rotate(-90deg); gap: 10px; }
65 50% { transform: rotate(-135deg); gap: 0px; }
66 62.5% { transform: rotate(-180deg); gap: 10px; }
67 75% { transform: rotate(-225deg); gap: 0px; }
68 87.5% { transform: rotate(-270deg); gap: 10px; }
69 100% { transform: rotate(-315deg); gap: 0px; }
70 }
71 </style>
72</head>
73<body>
74
75 <div class="loader">
76 <!-- Row 1 -->
77 <div class="cell red"></div>
78 <div class="cell blue"></div>
79 <div class="cell red"></div>
80
81 <!-- Row 2 -->
82 <div class="cell blue"></div>
83 <div class="cell white"></div>
84 <div class="cell blue"></div>
85
86 <!-- Row 3 -->
87 <div class="cell red"></div>
88 <div class="cell blue"></div>
89 <div class="cell red"></div>
90 </div>
91
92</body>
93</html>