Roadmap
What we've built, what we're building, what's next.
What's built, what's next, and where we're going.
Formo is in active development. This page is updated as milestones ship. No fake dates — only "done", "in progress", and "planned."
Done
Core systems that are built and working.
| Feature | Status |
|---|---|
| Vector network engine | Float32 vertices, Uint32 segments, relative tangents, regions |
| Shape types | Rectangle, Ellipse (6 modes), Star (3 gizmos), Polygon, Frame |
| Mode-based editor | Select, Vector Edit, Pen, Run |
| Properties panel | 12 typed property types, schema-driven, multi-select |
| Paint system | Multi-fill, multi-stroke, gradients with independent transforms |
| Reactive formula system | Acorn compiler, signal graph, topological sort, cycle detection, batch evaluation |
| Formula editor | Syntax highlighting, autocomplete, per-node coloring, source maps |
| Physics engine | planck.js integration, dynamic/static/kinematic bodies, multi-collider, collision events |
| Physics UI | Triple toggle, density/friction/restitution sliders, velocity widget, collider groups |
| Event system | click, mousedown, mouseup, mouseenter, mouseleave, collide — compiled handlers |
| Tag system | User-defined groups, reactive formula access (Tag.brick.length) |
| Run mode | Live mouse/keyboard events, formula evaluation at 60fps, physics simulation |
| Globals | mouse, keys, time, dt, frame, Tag, Math, console |
| Scene tree | Drag reorder, parent/child nesting, visibility toggle |
| Serialization | Schema-driven save/load, localStorage persistence |
| Undo/redo | Full history stack |
In progress
Actively being built right now.
Animation timeline
Per-bone timelines with formula keyframes. Keyframes hold reactive expressions, not just static values. Visual editing with easing curves. The tween engine is already proven — built and tested in the Foximation animation editor.
Brush tool
Parametric strokes: raw points + configuration as source of truth. Nib shape sweep with pressure/tilt. Non-destructive — change brush settings after drawing.
Planned
Near term
| Feature | Description |
|---|---|
| Keyframe blending | Mock-based crossfades between animation clips. Freeze-blend and live-blend modes. |
| IK solvers | Two-bone (analytical), CCD (iterative), FABRIK (position-based). For character animation. |
| Physics joints | Revolute, prismatic, distance, weld, rope, spring. Motors and limits. |
| Gravity attractors | Point gravity fields with inverse-square falloff. Attraction and repulsion. |
| Export: standalone JS | Self-contained bundle with evaluation functions, event wiring, teardown. No dependencies. |
| Export: Lottie JSON | Static keyframe animations for mobile and web. |
Medium term
| Feature | Description |
|---|---|
| Component system | Typed inputs/outputs, instances, independent state. Change definition → all instances update. |
| Non-visual components | Timer, State, API Connection — logic-only entities with reactive interfaces. |
| Component slots | VNode inputs for IK targets, look-at targets, spatial references. |
| Export: React | Visual components → React components. Non-visual → custom hooks. Props from inputs. |
| Export: CSS @keyframes | Single-property animations as native CSS. |
| Masking | Alpha masks and outline masks. |
Long term
| Feature | Description |
|---|---|
| Visual designer | Widget palette (Button, TextInput, Slider, etc.), flex/grid layout, preview mode. |
| Custom editors | Unity-style inspector panels for component types. Editors are themselves components. |
| Export: PIXI.js | Scene graph compilation for PIXI.js runtime. |
| Export: THREE.js | 2D content as THREE.js planes/sprites. |
| Real-time collaboration | Multiple cursors, conflict resolution, version history. |
| Instanced geometry | Linked duplicates sharing vector network data. |
| CanvasKit rendering | Skia-based renderer for advanced effects: blur, blend modes, path effects. |
How features ship
- Design the system in documentation
- Build the core logic with tests
- Build the UI controls
- Internal testing
- Beta release for early users
- Iterate based on feedback
- Stable release
Every feature goes through this pipeline. No "stealth launches." Beta users see everything first.
Want to influence the roadmap?
Beta users get direct access. The features you need move up the list.