How winchxyz/spiralist works
Spiralist is a browser-based drawing studio: a user supplies a photo, adjusts its tone and drawing options, then generates a continuous-line artwork rendered with selected media and paper. Its distinct drawing engines support Artistic, Realistic, and Line art modes; additional workflows produce cinematic films, exports, and 3D-printable objects. The app coordinates the main drawing flow, while workers handle costly geometry and mesh operations. The map reflects README capabilities and sampled imports/documentation; several UI-to-subsystem connections are indicated only where supported by the available evidence.
Main entry points: app.js App coordinator · index.js Line art engine · film.js Film studio · dialog.js 3D print controls
Components 27
Studio workflow
- App coordinator
js/app.js - Photo and crop
js/imageio.js - Tone field
js/tone.js
Drawing engines
- Line paths
js/spiral.js - Maze path
js/maze.js - Line art engine
js/lineart/index.js - Contour analysis
js/lineart/lines.js - Line art worker
js/lineart/worker.js - Styled line builder
js/lineart/styles.js - Realistic engine
js/real/index.js - Realistic worker
js/real/worker.js - Brushes and papers
js/materials.js - Artwork renderer
js/renderer.js - Paper loupe
js/loupe.js
Creation outputs
- Film studio
js/film.js - Desk scenes
js/desks.js - Artwork export
js/export.js - Download and share
js/download.js - 3D print controls
js/print3d/dialog.js - 3D mesh worker
js/print3d/worker.js - Print products
js/print3d/products.js - Mesh and files
js/print3d/mesh.js - Print timelapse
js/print3d/toolpath.worker.js
Local experience
- Local persistence
js/store.js - Offline cache
sw.js
Other components
- Photo artist
- Local model assets
Connections 29
- Photo artist → App coordinator: sets options
- Photo artist → Photo and crop: chooses photo
- App coordinator → Photo and crop: loads and crops
- App coordinator → Tone field: builds tone field
- App coordinator → Line paths: builds line geometry
- App coordinator → Maze path: builds maze path
- App coordinator → Line art engine: requests line art
- Line art engine → Contour analysis: extracts contours
- Line art engine → Line art worker: dispatches geometry
- Line art worker → Styled line builder: builds styled lines
- App coordinator → Realistic engine: builds realistic line
- Realistic engine → Realistic worker: dispatches build
- App coordinator → Brushes and papers: selects materials
- App coordinator → Artwork renderer: renders artwork
- App coordinator → Film studio: tracks draw progress
- Film studio → Artwork renderer: composes film
- Film studio → Desk scenes: selects desk scene
- App coordinator → Artwork export: exports artwork
- Artwork export → Artwork renderer: renders export
- App coordinator → Download and share: downloads or shares
- App coordinator → Paper loupe: opens loupe
- App coordinator → 3D print controls: opens print tools
- 3D print controls → 3D mesh worker: dispatches mesh work
- 3D mesh worker → Print products: builds product
- 3D mesh worker → Mesh and files: writes print files
- 3D print controls → Print timelapse: requests print preview
- App coordinator → Local persistence: persists choices
- App coordinator → Offline cache: registers offline support
- Line art engine → Local model assets: loads local models