2026

PropMotion is a skill for Claude Code. You install it, and Claude can build and animate a 3D object inside your SwiftUI app: a product spinning on a pedestal, a badge that rolls in and thuds, a coin that drops when the user hits a goal. One object that moves well, not a game. I wrote it and put it on GitHub under MIT.

SceneKit does the job and sits in any SwiftUI layout, but the knowledge of how is scattered and half of it is undocumented. The docs tell you what an SCNNode is. They do not say that deferred shadows silently break under MSAA, or that a fresh SCNView compiles its shaders on the first frame, in the middle of your entrance. Each of those cost me days. The skill is the missing manual, written for an agent.

On GitHub

The reel from the launch post. Every scene in it came out of the skill.

How you work with it

Shape from photos. The dumbbell in the reel started as two photos of two different dumbbells, from two angles. An agent reads proportions off a photo far better than off adjectives; "a rubber dumbbell with a steel grip" gets you a generic guess. The skill makes the agent take real-world measurements off the photos before it models anything.

Motion from a script. The barbell scene got no pictures at all, just a description of what happens and when: it rolls in from the bottom, racks itself, plates slam on one by one, and at the end the whole rack tips over backward. The skill turns that into a cue sheet before any code gets written. The tighter the sequence, the closer the first take.

Iterate on what you see. A screenshot of what is wrong beats a paragraph about what is wrong. When motion feels off and I cannot say why, I ask the agent to draw the path as a red line on the floor. One look settles whether the problem is the trajectory or the staging.

What's inside

One SKILL.md the agent reads first and eighteen reference files it pulls in as needed: how to build the stage, a transparent SCNView over your layout with three lights and a separate shadow rig; how to turn a cue sheet into baked keyframes; grabs and throws with a haptic tap on every impact; HDR studios so chrome reads as chrome; cutting a mesh in two at runtime; cutting several scenes into one clip. And the traps, each named with the fix that held up on screen. All geometry from primitives in code, all motion baked keyframes, a tiny integrator instead of a physics engine. No Unity, no Blender, no assets to license.

Ask for something concrete. "A coin that drops onto the table, bounces twice and settles" is a better first prompt than "add 3D".

On GitHub

© 2026 Mateusz Dembek