Creative Playground

A creative coding playground for experiments, visualizations, and visual toys. Built for fun, documented for collaborators.


Principles

Stable Shell / Volatile Engines Infrastructure is boring and should stay that way. The experiments? They’re meant to break, evolve, and get rewritten.

Stateless First Avoid state until you actually need it. Pure functions > side effects.

Composable UI Small, focused components that do one thing well. Mix and match.


Architecture

The codebase follows a monorepo structure with clear separation between the shell and the engines.

Apps

AppPurpose
apps/playgroundThe shell — Astro app with docs, project pages, and routing
apps/storybookComponent explorer for UI library

Packages

PackagePurpose
packages/uiShared React components with CVA variants
packages/mosaic-makerCSS Grid patterns from color palettes
packages/sequence-rendererMath sequence visualization engine
packages/palette-generatorColor theory scheme generator
packages/image-to-particlesImage → particle physics deconstruction
packages/tailwind-configDesign tokens (Gruvbox theme)

Data Flow

User Action → Engine Rule → Data → Visualization → Canvas/DOM

The shell (Astro) provides layout and navigation. Engines own their logic. UI components bridge them.


Built With

ToolLinkRole
Astroastro.buildApp shell, routing, content
React 19react.devUI components
Tailwind CSStailwindcss.comStyling
TypeScripttypescriptlang.orgType safety
Turborepoturbo.buildBuild orchestration
pnpmpnpm.ioPackage management
Storybookstorybook.js.orgComponent explorer
Zustandzustand-demo.pmnd.rsState management
D3d3js.orgData visualization

Next Steps