Architecture

Technical documentation

Core Architecture

ComponentTechnology
3D EngineThree.js 0.160.0 (invisible skeleton)
RenderingSVG-based custom pipeline
LanguageVanilla JavaScript (ES6)
Build SystemPython build script (HTML injection)
DependenciesNone (zero frameworks)

Rendering Pipeline

  1. Three.js Skeleton: Invisible 3D hierarchy for math (IK, raycasting)
  2. SVG Overlay: Custom hand-drawn rendering
  3. Depth Sorting: Dynamic layering with paper halos
  4. Wobble Effect: Seeded pseudo-random jitter for hand-drawn aesthetic

Data Storage

KeyPurpose
strich_posesIndividual poses (localStorage)
strich_scenesComplete multi-figure scenes (localStorage)

Performance Optimizations

  • Memory pools for Three.js objects (Vector3, Quaternion, Matrix4)
  • Dirty flag pattern (SVG only re-renders when changed)
  • DOM pooling (SVG elements reused, not recreated)
  • Single raycaster per frame for joint selection

Project Structure

src/          — Source files (HTML, CSS, JS)
html/         — Built output (index.html)
docs/         — End-user documentation
dev_docs/     — Developer notes and plans
scripts/      — Build automation
website/      — Info website (this)

← Back to Home