Welcome to Interfaces
Interfaces is the bridge between dance and computer art. We capture the dynamics and expression of movement and transport them into the world of code-generated art — connecting choreographers, dancers, visual artists, and computer nerds on the same platform.
Scan a video file entirely in your browser using ffmpeg.wasm + MediaPipe Pose — no upload needed. Or stream live from your webcam, a WebSocket feed, or load pre-recorded data from the database.
Every scan is a RawData record. Wrap it in a Choreo (with an author, name, and type) to give it context and make it discoverable. Use the Database tab to explore, organise, and remix what's stored.
Write p5.js sketches that consume live pose data via a unified
dataSource.getFrame() interface — the same code works
whether the data comes from a video scan, a live webcam, or a stored
choreo. Save and reload your sketches as
JsScripts at any time.
Interfaces is about sharing and remixing. Tag the creators of the content you use and share the results — fame, coins, or just the fun of it.
Ready? Head to the to explore what's stored, or jump straight into the to start creating.
Database
This is the relational heart of Interfaces. Every scan, choreography, and generative script lives here as a structured record that can be linked, re-used, and remixed. Use the forms below to add records, the ✕ buttons to remove them, and ▶ Playground to load a Choreo straight into the editor.
Raw API: /api/v1/choreos/ | /api/v1/choreotypes/ | /api/v1/rawdata/ | /api/v1/jsscripts/
ChoreoTypes
A ChoreoType is a named category for a movement style or session context — e.g. "Contemporary", "Video Scan", or "Improvisation". Choreos reference a ChoreoType so you can filter and group related recordings.
RawData
A RawData record holds the raw JSON payload of a motion scan — typically an array of per-frame landmark objects produced by MediaPipe. RawData is the factual backbone: a Choreo links to it to add metadata such as a name, author, and type. Large payloads are stored but not rendered here to keep the UI fast.
Choreos
A Choreo is the publishable unit of a motion recording. It wraps a RawData payload with human-readable metadata (name, author, modification time) and an optional ChoreoType tag. Think of it as the "track" record in a music library — the raw scan is the audio file, the Choreo is the labelled, shareable entry. Click ▶ Playground to load any Choreo directly into the editor for playback or generative art.
JS Scripts
A JsScript is a saved Playground sketch — a p5.js snippet that you can reload into the editor at any time. Use Import JS File to upload an existing script from disk, or save the current editor contents directly from the Playground's Save Script button.
Playground
JavaScript Editor
Saved scripts live in the database and work with any output engine. Use the Built-in sketches selector in the Output panel to load a ready-made p5.js template.
Output
Data Source ○
Select a choreo and click Load to prepare playback.
Frame Inspector
Curve View
Load a choreo to enable curve view.