playable

Installation
SKILL.md

Playable

Two ways in, one result: a robot you drive in the browser.

  1. A rigged model (.glb with bones and clips, or a .blend / .fbx you convert): the page keeps its node tree, plays its own clips, blends idle → walk → run by speed, and moves it across the floor exactly as fast as its feet step.
  2. A sketch or image of a robot: you build it from solid parts on a skeleton you design, and generate its motion: a gait computed live (legs that plant and lift, a springy tail, a level head) plus moves posed through the same solver and baked to clips. The same controller drives it.

Either way the result is one HTML file that opens from disk (three.js from jsDelivr through the template's import map; models embedded as base64).

Files

  • assets/template.html — the page shell (the iso-glow 3D template: renderer, hairline materials, themes, accent picker, tabs, panels, readout), with the header set to Playable. Never edit it per robot.
  • assets/anim.js — loads and styles a model (isoGlb) or a code-built robot (isoBuilt): body material, silhouette shell, crease hairlines, contact lines, fit.
  • assets/bots.js — the controller: botFig(config) adds one drivable robot as a tab.
  • assets/examples/bots-config.js — three loaded robots (a biped mech, a four-legged walker, a hover drone).
  • assets/examples/catbot.js — a robot cat built from a sketch: its skeleton as data, the body on it, a live four-legged gait with two-joint IK, moves baked from poses, and its config.
  • scripts/build.py — assembles the page: python3 scripts/build.py out.html my-robots.js --glb leela=Leela.glb.
  • scripts/inspect_rig.py, scripts/to_glb.py — Blender (headless) helpers: inspect a rig, convert to .glb with every action as a clip.
Installs
10
First Seen
12 days ago