{
 "title": "Rocket Launch: two Groks, two local models",
 "prompt": "Create a single self-contained HTML file using Three.js that renders a visually spectacular, bright, colorful, and highly detailed 3D animated rocket launch scene with powerful engine fire, thick smoke, dust, and dramatic environmental effects.\n\nRequirements:\n\n* Use Three.js loaded from a CDN.\n\n* Everything must be contained in one HTML file and work directly when opened in a modern browser.\n\n* Fill the entire browser viewport edge to edge with the 3D scene. Do not leave margins, borders, blank space, or unused areas.\n\n* Create a bright, polished, AAA-quality stylized 3D visual style with vibrant colors, detailed materials, cinematic lighting, soft shadows, atmospheric depth, and excellent visibility.\n\n* Create a large detailed rocket launch site surrounded by colorful terrain, launch structures, support towers, pipes, platforms, service equipment, barriers, and distant hills.\n\n* Make the rocket the clear central focus of the scene, large enough to see important details such as the body, nose cone, engines, fins, and surface panels.\n\n* Position the rocket vertically on a detailed launch pad at the beginning of the animation.\n\n* Include a launch tower or support structure beside the rocket with mechanical arms or clamps holding it in place.\n\n* Start with a brief calm pre-launch moment with subtle atmospheric movement such as light smoke drifting and small warning lights glowing.\n\n* Show the rocket engines gradually igniting beneath the rocket.\n\n* Create bright, powerful animated engine flames with multiple layers of fire, including a bright core, glowing exhaust, and longer flame trails.\n\n* Add intense heat glow and warm light from the engines reflecting onto the rocket body, launch platform, and nearby structures.\n\n* Create large volumes of thick animated smoke and dust spreading outward across the ground as the engines increase thrust.\n\n* Make the smoke roll, expand, swirl, and rise naturally instead of appearing as simple static clouds.\n\n* Add smaller particles, sparks, glowing embers, dust, and exhaust fragments around the launch area.\n\n* Make nearby grass, dust, loose objects, and lightweight vegetation react to the powerful engine exhaust.\n\n* As engine thrust increases, make the rocket subtly vibrate before liftoff.\n\n* Animate launch clamps or support arms releasing the rocket just before takeoff.\n\n* Make the rocket rise vertically from the launch pad with smooth but powerful acceleration.\n\n* As the rocket rises, create a long, bright exhaust plume extending downward.\n\n* Make the exhaust plume dynamically change length and shape as the rocket gains altitude.\n\n* Show smoke and dust continuing to spread around the launch pad after liftoff.\n\n* Add visible atmospheric distortion or heat shimmer near the engine exhaust if possible.\n\n* Include subtle camera vibration and a brief cinematic camera shake during ignition and liftoff without making the scene difficult to watch.\n\n* Use a smooth cinematic camera that follows the rocket upward while keeping the rocket and major launch effects clearly visible.\n\n* As the rocket climbs, smoothly reveal more of the colorful landscape, launch site, clouds, and distant horizon below.\n\n* Keep the rocket large and prominent throughout the sequence.\n\n* Add layered clouds at different heights, with the rocket eventually climbing toward and partially through them.\n\n* Use a bright blue daytime sky with colorful white clouds and strong sunlight so the rocket, flames, smoke, and environment remain clearly visible.\n\n* Avoid a dark night scene. The result should be bright, vibrant, high-contrast, and visually clear.\n\n* Use realistic-looking shadows and dynamic lighting, including the changing influence of the bright engine fire.\n\n* Keep the viewport visually dense and impressive throughout the animation, with no excessive empty sky or unused space.\n\n* Use layered terrain, launch structures, smoke, clouds, and atmospheric effects to maintain visual interest as the rocket ascends.\n\n* The animation should follow a clear sequence: rocket on launch pad \u2192 pre-launch smoke \u2192 engines ignite \u2192 flames intensify \u2192 smoke and dust rapidly expand \u2192 rocket vibrates \u2192 clamps release \u2192 rocket lifts off \u2192 rocket accelerates upward \u2192 long exhaust plume follows \u2192 camera tracks rocket toward the clouds.\n\n* Use smooth animation for the rocket, flames, exhaust, smoke, dust, sparks, particles, vegetation, clouds, lighting, shadows, and camera movement.\n\n* Do not add overlay text, titles, labels, HUD, captions, menus, buttons, borders, or UI elements over the scene.\n\n* The browser viewport should contain only the animated 3D rocket launch scene, filling the entire screen edge to edge.\n\n* Start the animation automatically when the page loads.\n\n* Add smooth camera controls only if they do not obstruct the scene or interfere with the cinematic composition.\n\n* Optimize for smooth performance in a modern browser.\n\n* No build process is allowed, and there must be no external dependencies other than the Three.js CDN.",
 "arms": {
  "grok4.6": {
   "dir": "grok46-rocket2",
   "wall_s": 634.6,
   "ttft_s": 1.3,
   "completion_tokens": 19940,
   "prompt_tokens": 1584,
   "tok_s": 31.5,
   "html_bytes": 49670,
   "finish_reason": "stop",
   "errors": [],
   "served": "xAI direct (api.x.ai, Hermes xai-oauth), reasoning model default",
   "thinking": "on",
   "max_tokens": null,
   "temperature": 0.7,
   "artifact_sha256": "4cd23890d22e54926e96e8574c9d3396685fb90a1362a9b4fdeb425e6010f2c5"
  },
  "grok4.7_chat": {
   "source": "grok.com chat, file supplied by user",
   "artifact_sha256": "6056b2361c861dd4e892e80b031f5fe14d3564bb5928d2538dcb1262c97d6e26",
   "api_attempts": [
    "grok47-rocket2-try1-dnf: 147,231 reasoning tokens, 35 visible output tokens",
    "grok47-rocket2-try2-dnf: ~67K reasoning tokens, 30 visible output tokens"
   ]
  },
  "glm": {
   "dir": "glm-rocket2",
   "wall_s": 3437.6,
   "ttft_s": 1.1,
   "completion_tokens": 79607,
   "prompt_tokens": 965,
   "tok_s": 23.2,
   "html_bytes": 55432,
   "finish_reason": "stop",
   "errors": [],
   "served": "GLM-5.3 Flash EXL3 \u2014 Mia TP2 (spark-366f+9f73) 10.0.0.183:8892, thinking ON (server default)",
   "thinking": "on",
   "max_tokens": null,
   "temperature": 0.7,
   "artifact_sha256": "6538f5a326ae7ef3fcf7b3e3b48a22f36e59aa6a72fe836ce56d0dfa4931786f"
  },
  "mimo": {
   "dir": "mimo-rocket2",
   "wall_s": 1810.0,
   "ttft_s": 0.5,
   "completion_tokens": 80343,
   "prompt_tokens": 963,
   "tok_s": 44.4,
   "html_bytes": 27425,
   "finish_reason": "stop",
   "errors": [],
   "served": "MiMo-V2.6-Flash-RL MXFP4 \u2014 vLLM TP2 (spark-b610+78f1) 10.0.0.120:8888, tonyd2wild recipe, DFlash 7, fp8 KV, thinking ON (template default)",
   "thinking": "on",
   "max_tokens": null,
   "temperature": 0.7,
   "artifact_sha256": "95d46355e8a50d8c101bb4143d8782b88026b602c8c0ee162faf5d4574cc3e0d"
  }
 },
 "serving": {
  "glm": "GLM-5.3-Flash EXL3 \u00b7 TP2 on 2\u00d7 DGX Spark (Mia)",
  "mimo": "MiMo-V2.6-Flash-RL MXFP4 \u00b7 vLLM TP2 on 2\u00d7 DGX Spark (tonyd2wild recipe: RoCE, fp8 KV, DFlash 7)"
 },
 "recordings": {
  "grok-comparison.mp4": {
   "sha256": "2ddc05dd472ca2a48857a5218b36197042e445b8e32e1ad5f79f9d5ac98ecf72",
   "probe": {
    "index": 0,
    "codec_name": "h264",
    "codec_long_name": "H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10",
    "profile": "High",
    "codec_type": "video",
    "codec_tag_string": "avc1",
    "codec_tag": "0x31637661",
    "mime_codec_string": "avc1.640028",
    "width": 1280,
    "height": 1440,
    "coded_width": 1280,
    "coded_height": 1440,
    "has_b_frames": 2,
    "pix_fmt": "yuv420p",
    "level": 40,
    "chroma_location": "left",
    "field_order": "progressive",
    "is_avc": "true",
    "nal_length_size": "4",
    "id": "0x1",
    "r_frame_rate": "24/1",
    "avg_frame_rate": "24/1",
    "time_base": "1/12288",
    "start_pts": 0,
    "start_time": "0.000000",
    "duration_ts": 294912,
    "duration": "24.000000",
    "bit_rate": "1750334",
    "bits_per_raw_sample": "8",
    "nb_frames": "576",
    "extradata_size": 46,
    "disposition": {
     "default": 1,
     "dub": 0,
     "original": 0,
     "comment": 0,
     "lyrics": 0,
     "karaoke": 0,
     "forced": 0,
     "hearing_impaired": 0,
     "visual_impaired": 0,
     "clean_effects": 0,
     "attached_pic": 0,
     "timed_thumbnails": 0,
     "non_diegetic": 0,
     "captions": 0,
     "descriptions": 0,
     "metadata": 0,
     "dependent": 0,
     "still_image": 0,
     "multilayer": 0
    },
    "tags": {
     "language": "und",
     "handler_name": "VideoHandler",
     "encoder": "Lavc63.1.101 libx264"
    }
   }
  },
  "local-comparison.mp4": {
   "sha256": "039126fc279db1d9206bee3ad71acdcf85b55e093ee28c616a9054b34ad79989",
   "probe": {
    "index": 0,
    "codec_name": "h264",
    "codec_long_name": "H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10",
    "profile": "High",
    "codec_type": "video",
    "codec_tag_string": "avc1",
    "codec_tag": "0x31637661",
    "mime_codec_string": "avc1.640028",
    "width": 1280,
    "height": 1440,
    "coded_width": 1280,
    "coded_height": 1440,
    "has_b_frames": 2,
    "pix_fmt": "yuv420p",
    "level": 40,
    "chroma_location": "left",
    "field_order": "progressive",
    "is_avc": "true",
    "nal_length_size": "4",
    "id": "0x1",
    "r_frame_rate": "24/1",
    "avg_frame_rate": "24/1",
    "time_base": "1/12288",
    "start_pts": 0,
    "start_time": "0.000000",
    "duration_ts": 294912,
    "duration": "24.000000",
    "bit_rate": "1396304",
    "bits_per_raw_sample": "8",
    "nb_frames": "576",
    "extradata_size": 46,
    "disposition": {
     "default": 1,
     "dub": 0,
     "original": 0,
     "comment": 0,
     "lyrics": 0,
     "karaoke": 0,
     "forced": 0,
     "hearing_impaired": 0,
     "visual_impaired": 0,
     "clean_effects": 0,
     "attached_pic": 0,
     "timed_thumbnails": 0,
     "non_diegetic": 0,
     "captions": 0,
     "descriptions": 0,
     "metadata": 0,
     "dependent": 0,
     "still_image": 0,
     "multilayer": 0
    },
    "tags": {
     "language": "und",
     "handler_name": "VideoHandler",
     "encoder": "Lavc63.1.101 libx264"
    }
   }
  }
 },
 "capture": "capture_auto.py, 24 fps fixed-step, 24 s, no interaction"
}