Flow Studio is a generative art playground built with Next.js, React, TypeScript, and p5.js. It renders procedural animated backgrounds and gives you a control panel for exploring different visual families, motion patterns, color treatments, and export options.
- Real-time generative background rendering with
p5.js - Interactive control panel for tuning composition parameters
- Multiple visual families and preset recipes
- Export support for generated artwork and standalone renderer output
- Local quality gate with linting, type-checking, formatting, dead-code detection, and duplicate-code detection
Next.js 16React 19TypeScriptp5.jsZustandTailwind CSS 4Framer Motionoxlintoxfmttsgofallowhusky
Node.js 22+recommendedpnpm 10+
pnpm installpnpm devOpen http://localhost:3000.
pnpm build
pnpm startCopy values from .env.example if needed by your environment.
Current variables:
GEMINI_API_KEYAPP_URL
pnpm devstarts the Next.js dev server with webpackpnpm buildcreates a production buildpnpm startruns the production serverpnpm lintrunsoxlintpnpm typecheckrunstsgopnpm formatformats the codebase withoxfmtpnpm format:checkchecks formatting without writing changespnpm dead-coderunsfallow dead-code --fail-on-issuespnpm dupesrunsfallow dupes --fail-on-issuespnpm verifyruns the local quality gate used by the git hookpnpm cleanrunsnext clean
This project does not rely on CI. The primary quality gate is local.
- A
pre-commithook runspnpm verify pnpm verifycurrently checks linting, type safety, formatting, dead code, and duplicate code- Build verification can be run manually with
pnpm build
That means commits are expected to be clean before they are pushed to GitHub.
app/
layout.tsx App shell and metadata
page.tsx Main Flow Studio page
globals.css Global styles
components/
ControlPanel.tsx UI for controls and export actions
GenerativeBackground.tsx p5 canvas host and runtime integration
lib/
generativeRenderer.ts Core rendering logic and exportable renderer source
store/
useControlsStore.ts Zustand store for controls, presets, and helpers
.husky/
pre-commit Local verification hook
- The app uses
webpackexplicitly fordevandbuildbecause the repo still contains custom webpack configuration in next.config.ts. fallowis part of the default workflow, so dead code and duplicate code are treated as commit blockers.tsgois used for type-checking, whiletypescriptremains installed for ecosystem compatibility.
No license file is currently included in this repository.