Skip to content

Repository files navigation

Interfaces 2026

Interfaces is where movement becomes material for digital creation.

It brings choreographers, dancers, visual artists, and developers into one local-first workspace where a recording can move from rehearsal reference to generative artwork in minutes.

  • capture motion as structured data,
  • organize and remix scans in a relational database,
  • transform movement into visuals in a live coding playground.

This README is your launchpad: get running fast, see what Interfaces can do, then dive into the docs track that matches your role.

Start here: first 15 minutes

If you want the fastest possible route from clone to first 3D skeleton playback:

Quickstart (Docker)

git clone https://github.com/gandie/Interfaces-2026.git
cd Interfaces-2026
cp .env.example .env
docker compose up --build

Then open:

What you can do in Interfaces

  • Capture motion from webcam, local video, or WebSocket streams.
  • Store scans as RawData, then wrap them as Choreo records with metadata.
  • Create visuals in the Playground (p5.js and Three.js output engines).
  • Export/Relay motion through data sinks (DB, WebSocket, BVH, post-process chain).
  • Learn in-app through the new Docs tab (renders markdown from docs/ and supports date-based chronological browsing).
  • Report precisely with visible header diagnostics (app version + commit copy helper).

Interfaces is built for sharing and remixing: treat scans as collaborative source material, credit creators, and build work that travels across dance and code communities.

Media examples

Native p5js GIF eports via ffmpeg WASM:

p5js gif export

threejs 3d skeleton output:

threejs 3d skeleton

Playground

Local-first frontend, where all the heavy lifting is done:

Playground popout demo

Documentation hub

Start here

Architecture and research

Changelogs

See the docs/changelog-*.md files for feature-level history.

API overview

All API routes are under /api/v1.

  • /api/v1/choreotypes – CRUD for choreotype categories
  • /api/v1/rawdata – CRUD for raw motion payloads + legacy import
  • /api/v1/choreos – CRUD for publishable choreography records + package import/export
  • /api/v1/database – full database import/export backup endpoints
  • /api/v1/jsscripts – CRUD for saved Playground scripts
  • /api/v1/docs – docs index and markdown rendering for the in-app docs viewer

Project structure

.
├── app/                   # FastAPI backend
├── frontend/              # Static frontend assets (HTML/CSS/JS)
├── docs/                  # User guides, changelogs, research
├── tests/                 # Backend + frontend test suites
├── alembic/               # Migrations
├── scripts/               # Legacy utility scripts
└── tools/                 # Maintainer tooling (version bump, docker build metadata)

Maintainer tools

# bump app version in app/main.py
tools/bump-version.sh 0.2.0

# build docker image with app version + current git commit metadata baked in
tools/docker-build-with-meta.sh interfaces-2026:0.2.0

docker compose also forwards these metadata values through build args: INTERFACES_APP_VERSION and INTERFACES_COMMIT.

Local development (without Docker)

python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
cp .env.example .env
alembic upgrade head
uvicorn app.main:app --reload

Tests

# Backend
pytest tests/backend/ -v

# Frontend (Playwright)
playwright install chromium
pytest tests/frontend/ -v

AI contribution statement

This project actively supports human + AI collaboration, but every AI-generated contribution must still meet the same bar as human contributions:

  • factually correct, test-verified, and reviewable,
  • aligned with the project spirit (clarity, openness, modularity),
  • designed to help artists and developers collaborate without unnecessary complexity.

AI assists implementation; humans remain responsible for final judgment, context, and creative direction.

About

Interfaces relaunch

Resources

Code of conduct

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages