React 19
The interface is a React application that manages controls, live preview state, timing, animation mode selection, and export interactions in a browser UI.
A Vite + React + TypeScript tool for live visual animation studies and SVG export, featuring a parameter-driven animation system for exploring and saving generative motion variations.
Live at: https://movingdots.sugiro.ai/
What powers this animation study tool and how it differs from a typical static visual demo.
The interface is a React application that manages controls, live preview state, timing, animation mode selection, and export interactions in a browser UI.
Application code, scene definitions, export logic, and Vite configuration are written in TypeScript, which helps keep the animation and export structures consistent.
Vite handles the local development server, production build, preview mode, and plugin-based extension points that power the local export endpoint.
The app generates SVG visuals from structured scene/state data rather than embedding fixed animations. That makes the visual system parameter-driven and export-friendly.
The tool exports not only SVG files but matching markdown snapshots, using a local server route and Node.js filesystem utilities rather than browser-only download blobs.
The project uses modern linting and a standard React/Vite TypeScript toolchain, making it much closer to Glossary Builder than to the static utilities in the workspace.
The app combines browser-side controls with a local export route backed by Node.js.
The project starts as a normal Vite + React app, with src/main.tsx mounting the interface and src/App.tsx running the main tool.
The browser controls adjust scene state such as mode, timing, design parameters, and preview behavior for the active visual composition.
src/lib/scene.ts defines the animation designs, control metadata, defaults, and SVG generation logic that drive the preview.
The app sends SVG plus structured snapshot data to /api/export, which is implemented through custom Vite middleware instead of a separate backend framework.
The export middleware uses filesystem utilities to save the SVG and a matching markdown snapshot into svg-export/ with incremented filenames.
This project is a frontend app with a local-only export backend embedded in the dev/build toolchain.
package.json vite.config.ts src/App.tsx src/main.tsx src/index.css src/lib/scene.ts src/lib/export.ts svg-export/
The distinguishing architectural choice here is that export behavior is implemented inside Vite middleware, not as a conventional hosted API service.
The core value of the tool is exploratory design plus structured local export.
Designs are parameterized rather than hard-coded as one fixed visual.
React state drives the live preview.
Orbit and Lines modes provide distinct scene families.
The app is built for iteration and variation.
SVG exports are written to disk, not only downloaded in-browser.
Each export includes a markdown snapshot of the current design state.
The Vite server route assigns numbered filenames.
This is optimized for local creative workflow rather than general public deployment.
The app follows the normal Vite workflow, with local export support built into the server config.
npm install npm run dev npm run build npm run preview npm run lint
npm run dev is especially important here because the local export route is wired into the Vite server configuration.
Node.js and npm.
No external API keys.
Filesystem write access for local export output.
A local workflow rather than a purely static hosted workflow if export is required.
Dots Animation Tool is a Vite + React + TypeScript creative tool with a distinctive local export backend embedded in Vite. It is closer to a design workstation utility than a conventional static site or CRUD app.