What you get
One HTML file of about 800 KB that opens in any browser, works offline, and holds the whole machine.
Every simulator the skill makes has the same six parts:
- The machine
- Every part drawn in code at real sizes, shaped after your one picture
- The model
- One set of formulas driven by one input. The parts, the panels and the labels all read from it, so nothing drifts
- The panels
- Live charts and gauges that move with the machine: speed, load, pressure, temperature, whatever your machine has
- The buttons
- One per subsystem to isolate it, cut it open or show it alone, plus modes and sliders
- The camera view
- Drag to orbit, scroll to zoom, or jump to set views like front, side, top and inside
- The tour
- Left alone, a cursor drives the page by itself. Touch anything and you take over; 25 quiet seconds and it starts again
- 1
- Picture to start from
- 9
- Prompts, pasted in order
- ~800 KB
- One file, works offline
- Free
- MIT licence, on GitHub
The prompts, step by step
Paste them one at a time into the same Claude Code chat, change what is in [square brackets] to your machine, and look at each result before the next.
About the brackets
Everything inside [square brackets] is Elvar’s own example, mostly the Cessna 337 landing gear and the V8. Replace it with your machine’s parts and numbers and keep every other word as it is.
1Build the machine and its model
The most important prompt. Before Claude draws a single part, it writes the machine as math: one input that runs everything (here, how far the actuator has pushed, from 0 to 1) and the real measurements, with the check done where you can see it. Every part, panel and label is then computed from that math. Nothing is animated by hand, so nothing can fall out of step.
Prompt
/teardown Build [the Cessna 337 main landing gear] as an interactive 3D simulator. Reference attached: [a cutaway drawing of the gear]. Build it from code in real units: [the main plate, the hydraulic actuator, the rack, the pinion on its output shaft, the universal joints, the side tubes, the spring legs and the wheels]. Before you draw anything, write the model as pure functions of one input: [stroke from 0 to 1]. Use the real numbers: [the rack travels 201 mm, the pinion has 32 teeth at module 4 mm, so the legs turn exactly 180°]. Check them by hand and show me the check. If you are not sure a number is real, say so and tell me where it comes from. Every part, every panel and every label reads from that one model. Nothing is animated by hand.
Elvar’s numbers for the Cessna gear show what the check is for: a 32-tooth gear at module 4 mm is 128 mm across, half of its circumference is 201 mm, and that is exactly how far the rack travels to swing the legs 180°. His V8 and Strandbeest came out of this same prompt with different brackets.
2Build the console around it
Now the screen around the machine: a big live number in the corner, charts that move with it, a flat 2D drawing of the mechanism, a button for each subsystem, buttons for the camera views, and labels with thin lines pointing into the parts. Swap the bracketed number, charts and views for ones that fit your machine.
Prompt
Lay out a console around the machine at 1600×900: - the title and the main live number top left, big: [engine speed in rpm] - live charts that move with the machine: [valve lift over 720° of crank, the pressure-volume loop of the tracked cylinder] - a schematic panel that redraws the mechanism in 2D from the same model - one button per subsystem: isolate it, cut it, show it alone - camera views as buttons: [hero, front, side, top, inside the valley] - callouts with thin leader lines into the parts they name Every panel redraws from the frame's state. No number on screen is typed in.
The charts are what hold people. On the V8, the pressure chart draws a closed loop once every two turns of the crank, and you sit there watching it close.
3Give it the look
A clean study model in a pale studio, with one accent colour on whatever part is working right now.
Prompt
Style: a clean study model on a pale studio. - light background, soft shadows on an invisible floor, one accent colour for the part that is working right now - the machine fills 60 to 70% of its view - dark parts glossy, liners glass, metal roughness at least 0.45 so it never streaks white - if a part is near-white, give it a thin ink outline or a darker ground - pick the camera for the mechanism: if it collapses into a lattice face-on, use a 3/4 view
Every line in it fixes something that once went wrong: white tubes that vanished into a cream background until they got a thin dark outline, metal that flashed white, and a front-on camera that flattened twenty legs into what looked like a fence.
4Make it check its own work
Claude looks at the result before you do. It renders a still at every moment of the tour and checks each one for parts passing through each other, parts floating off their mounts, labels covering what they name, and numbers that disagree with the picture. Then it steps through every transition looking for jumps.
Prompt
Before you show me anything: 1. Render a still at every beat of the tour and read each one: a part passing through another, a part floating off its mount, a label covering what it names, a number that disagrees with the pose. 2. Scrub every transition at 0.2 s steps and look for a jump. 3. Fix collisions with a number in the parameter block. Never hide them with the camera. Tell me what you checked and what you fixed. Show me the stills.
The rule worth keeping is the third line: a collision gets fixed with a number, never hidden by moving the camera. Ask for the stills and look at them yourself too.
5Turn it into a page people drive
This makes the tour that runs itself: a cursor walks to each button and presses it, any click or key hands control to the visitor, and after 25 quiet seconds the tour takes over again. The last two lines are about speed. The graphics are prepared before the first frame, so the page never freezes, and there are lower settings for laptops without a separate graphics card.
Prompt
Make the simulator a page people drive: - the tour from the film plays by itself, with a cursor that walks to each button and presses it - any click, drag, scroll or key hands control to the visitor; 25 seconds of quiet hands it back - drag to orbit, scroll to zoom, a key to hide the panels - warm every shader before the first frame so the page never freezes - test it on an integrated GPU and add quality steps: no ambient occlusion, a lower pixel ratio, smaller shadows, panels redrawn every other frame
That laptop test is the one people skip and the one visitors feel. One of Elvar’s walking robots ran at 15 frames a second on built-in laptop graphics, and at 75 after the quality steps.
6Record it as a video with sound
Two prompts. The first draws every frame from the clock alone, 60 a second at 1920×1080, in a hidden Chrome window, and has ffmpeg turn them into an mp4. A screen recorder skips frames when the graphics get heavy. This cannot.
Record it
Record the tour: render(t) has to be a pure function of time, so draw every frame at 60 fps at 1920×1080 in headless Chrome and pipe it into ffmpeg as H.264, yuv420p, faststart. Then show me a contact sheet of every beat.
The second writes the soundtrack in code on the same timeline, so each sound lands on the motion that makes it, and sets the loudness to what streaming sites expect. Change the bracketed music and sounds to suit your machine.
Score it
Score it in code on the same timeline: [Am9 chords at 92 bpm, a soft thump on every power stroke so the beat tightens when the throttle opens, a quiet click on every button press, rising air under the throttle drag]. Master to -14 LUFS with the true peak under -1 dB and mux it into the video.
This is the step that needs ffmpeg and Python 3. If you do not have them, ask Claude Code to install them first.
7Put it online
Publishes the page with a 1200×630 preview image made from its best frame, and deploys it to Vercel.
Prompt
Publish the simulator as a page: - keep the HTML under 1 MB; move any large model out as a file next to the page - a 1200×630 preview card from the best frame, with absolute image URLs - deploy it to Vercel
Keep the 1 MB line. One of Elvar’s pages weighed 15.9 MB with its 3D models inside, and X never showed a link preview for it. With the models moved into their own files it came in under 1 MB and the preview appeared.
8Bonus: let people push it too far
One slider that drives the machine past normal (wind on the Strandbeest, in his example) while the model keeps running live and the panels keep reading it.
Prompt
Add one slider for [the wind, 0 to 15 m/s] and run the model live when it moves: [a light breeze barely turns the crank, a gale makes the legs blur]. Show it on the same panels.
Pushing a machine until it fails is the quickest way to learn what each number does.
See them running
Elvar’s finished simulators run free in the browser at visual-learning.app, and the three that ship with the skill are open source on GitHub.
On the site: a robotic jellyfish, a six-legged walking robot, a sandworm boring machine 1.3 km long, the Strandbeest, the V8, the Cessna landing gear and a robotic bee, plus a long list of everyday machines opened up step by step. Press the buttons, isolate a part, cut it open.
In the repo: the V8, the Cessna landing gear and the Strandbeest, each as the machine, the page you drive and the recorded film. Open one before you build your own and you will know exactly what the prompts are aiming at.
On a phone or a laptop with built-in graphics, the first load takes a few seconds while the graphics compile. After that the page turns its own quality down to keep moving smoothly.
Who made this
Not me. The skill and the prompts are Elvar’s, the octopus video is Fokki’s, and this page only puts them in one place, ready to copy.
- The teardown skill and every prompt on this page: Elvar (@elvar_official). He published them in his article on X, “How I Turn Any Machine Into a 3D Simulator You Can Take Apart”, which has his notes and a video of each machine.
- What the skill is built on: claude-motion by whaleyxbt, which gave it frame capture and the sound engine. Also MIT.
- The robot octopus video: Fokki (@0x_fokki), from his post on X.
Never used Claude Code? Start here, and this is what the plans cost.