RigCraft

Field notebook

Attach a part to anything that's already moving. Find the hooks automatically. Give the part real steel, real copper, real aluminum foil — and watch it hold the bend.

Built on OnlyCSharp.ComputerGraphics.ObjectKit Catalog swept 99 / 99 animated clips Materials 6 presets, real Young's-modulus data
A 15-wide, 20-tall grid of 297 panels: every one of the 99 ObjectKit animated creatures and machines rendered three ways side by side — plain body, colored motion-hook markers, and a bare skeleton of joints and inferred bones.
Every animated model in the catalog, three ways at once — plain / marker-hooks / skeleton-only. 297 panels, one file.
00
Part attachment

Attach anything to anything that's already moving

Every existing ObjectKit scene is a flat list of parts with absolute transforms — no parent/child hierarchy, no sockets, no attachment concept at all. RigCraft's attachment layer adds one: a part's world transform is its parent segment's own animated transform, composed with a local offset the part carries around forever after.

  • Freehand — any offset, including one that floats well clear of the parent's surface. Nothing requires the meshes to touch.
  • Snap rings — N parts spaced evenly around a limb's circumference, generated, not placed by hand.
  • Zero changes to ObjectKit itself — the whole mechanism bakes a world matrix into a part's own vertices before handing it to the existing scene, so nothing about an already-shipped animation changes underneath it.
A walking quadruped with four attached parts: a floating orb that doesn't touch the body, a boot riding the front foot, a four-spike snap ring on a hind leg, and a shoulder pad.
One quadruped, four independently-attached parts — a non-touching orb, a foot-riding boot, a snap ring, a shoulder pad.
01
Motion-hook detection

Find the moving parts without reading a line of gait math

Every animated clip in the catalog shares one shape: a pure function from phase to a scene of parts. Sample the same clip at twenty phases and diff each part's position and rotation across the samples — the parts that barely move are scaffolding, the parts that swing far are the real attachment points. No per-creature rig math required.

Run against all 99 clips, this technique needed zero special-casing for the extremes — a 227-part acoustic wave field and an 8-part quadruped walk both fall out of the same formula.

Sample readout — QuadrupedWalk
partscoreread
front-left foot0.200primary hook
torso0.020scaffolding
A 10-by-10 grid of all 99 ObjectKit animated clips, each with small colored dots marking the parts detected as moving.
All 99 clips, marker-hooks mode. Blue = subtle wobble, red = dramatic swing — the same detector, no per-clip tuning.
02
Live editor

RigCraft Studio — build on any clip, in a browser

The full editor, not just a viewer: pick any of the 99 clips, choose a detected hook from a ranked dropdown, attach a rod, orb, box, or spring, and give it a real material. Parts link tip-to-tail like stacking in the VAB — a rod on a leg, a spring on the rod's end, an orb dangling off the spring — and a floppy parent carries its whole subtree with it. Every part edits live (ring angle, length, scale, material) and has actions: poke it, crush it until it permanently breaks, heal it straight again. Whole crafts copy and paste as JSON.

Runs entirely in-browser — no server, no network calls WebGL canvas, reused from the sibling ObjectKit viewer Actions map onto the physics model's own API — nothing invented
Screenshot of the live studio in marker-hooks mode, showing red dots at all four feet of a walking quadruped mid-swing.
Marker-hooks mode, live.
Screenshot of the live studio in heat-tint mode, showing the same quadruped's legs recolored hot orange.
Heat-tint mode, same pose.
03
Material physics

Steel and aluminum foil are not the same rod

A part's material now drives real physics, not a cosmetic tint. Density and stiffness come from the repo's own Chemistry.Materials catalog — real ASTM steel, aluminum, copper — fed through textbook cantilever-beam formulas (k = E·I/L) into a damped torsional spring reused verbatim from GameDevelopment.Vegetation.VegetationBend: built for a blade of grass, which turns out to be exactly a small cantilever with plastic "trample" memory.

Foil isn't a fictitious "foil modulus" — it's the same aluminum alloy as a rigid rod, at a radius roughly a hundred times thinner. Beam stiffness scales with radius to the fourth power, so the honest geometry alone is what makes identical metal collapse floppy and stay creased.

Same part, six materials — measured, not eyeballed
materialrest bendpermanent set
steel rod2.4°0%
wooden stick2.4°0%
copper wire5.9°0%
pipe cleaner30.2°26%
aluminum foil51.6°100% — broken
string / twine57.3°0% — never holds a crease
Six identical whisker-shaped parts attached to the same walking quadruped's foot, one per material, visibly diverging in how far they bend and whether they spring back.
Six materials, one rig, one attachment point — only the material changes.
04
New geometry

Springs, coils, and slinkies

No helix/coil/spring primitive existed anywhere in the mesh library before this — every existing shape swept a profile around a single straight axis. A coil sweeps a tube along a path that turns and rises at once, using an analytically stable frame at every ring (a helix's tangent is never parallel to world-up, so there's no per-ring twist to fight).

The material system needed zero changes to work on the new shape — it only ever reads a material preset and a lever-arm length, never the mesh geometry — which is the actual proof that this generalizes past one whisker-shaped demo part.

The same six materials as before, now shaped as a coiled spring instead of a straight rod, still bending correctly per material.
The same six materials, coiled instead of straight. Same physics code, unmodified.