Portable vector interface framework

A versatile family of
vector-driven modules.

Build expressive graphical interfaces across domains with composable tools for layout, motion, simulation, rendering, and shared state—then carry the same editable document wherever the work needs to live.

Versytl /ˈvɜːrsətl/ — pronounced “versatile.”

LIVE SCENE / 001FRAME READY
01 / INPUTApp stateSEMANTIC SCENEnodes · connectors · data03 / OUTPUTSVG · CTX · …ONE MODELMANY CAPABILITIESV.02

Built with @versytl/core and animated by @versytl/tween.

One model, purposeful layers

A framework made
of smaller, useful parts.

Start with a scene and a renderer. Add layout, controls, motion, simulation, or shared state when the interface calls for them.

  1. 01

    Describe meaning

    Versioned scenes preserve identity, layers, semantic connectors, and application components inside portable SVG documents.

    @versytl/scene
  2. 02

    Compose behavior

    Compose graphical controls, deterministic motion, physics, and field-level shared records as independent layers.

    adapters
  3. 03

    Choose the surface

    Render the same scene through browser-native SVG or a portable CTX target—with room for what comes next.

    renderers

Built with Versytl

Trickle Task

A standalone task planner that brings priorities and dependencies into one map, with portable SVG projects and shared task and checklist edits.

Task planning / trickle-task.com

See what connects.
Map dependencies so you can follow the work that leads to the next task.
Keep priorities in view.
Arrange tasks by priority and explore the project from the full map or a mobile task list.
Take the project with you.
Export an editable SVG with the task map and project data together in one portable file.
The foundation@versytl/core@versytl/scene@versytl/clay@versytl/shipkit@versytl/tween@versytl/yjs

Explore how Versytl

Small systems.
One visual language.

Every panel is a real Shipkit card containing a small scene. Together they show how the framework’s focused libraries compose without collapsing into one inseparable engine.

SVG PRIMITIVESCoreLIVE
SEMANTIC GRAPHSceneLIVE
LAYOUT GEOMETRYClayLIVE
GRAPHICAL CONTROLSShipkit0%scene-native controlLIVE
DETERMINISTIC MOTIONTweenLIVE
VISUAL ASSEMBLIESObjectsLIVE
NEUTRAL CONTRACTSPhysicsLIVE
PHYSICS ADAPTERRapier9.81 ↓LIVE
WASM ADAPTERBox2DWASM WORLDLIVE
PROJECTED SCENESISOLIVE
PORTABLE RENDERERCTXDRAW TARGETLIVE

New / @versytl/yjs

One idea. More than one view.

Edit together, disconnect, and merge changes. Try a pair of independent views and a persistent board shared across browser tabs.

Try the sync playground →

The package family

Choose the pieces
your interface needs.

Explore each package’s source, API, and examples. Scene documents carry meaning; layout, rendering, simulation, and shared state compose around them.

Portable documents

Scene

@versytl/scene

A versioned scene graph with layers, semantic connectors, reusable components, validation, and SVG round-tripping.

Source & documentation ↗

SVG rendering

Core

@versytl/core

Vue SVG primitives and a scene renderer with pointer interaction, shapes, and connectors.

Source & documentation ↗

Layout geometry

Clay

@versytl/clay

Clay/WASM measurements for responsive grids and timelines. Applications own their state and artwork.

Source & documentation ↗

Reusable controls

Shipkit

@versytl/shipkit

Scene cards, flow controls, export menus, dashboard gauges, and railroad diagrams.

Source & documentation ↗

Deterministic motion

Tween

@versytl/tween

Sample time-based motion and compose animation without tying the model to a rendering loop.

Source & documentation ↗

Visual assemblies

Objects

@versytl/objects

Reusable physical artwork that produces scene nodes independently of the physics engine.

Source & documentation ↗

Simulation contracts

Physics

@versytl/physics

Renderer-neutral body, surface, and soft-body contracts shared by engine adapters.

Source & documentation ↗

Physics adapter

Rapier

@versytl/rapier

Rapier runtime and simulation integration behind the shared physics contracts.

Source & documentation ↗

Physics adapter

Box2D

@versytl/box2d

A Box2D/WASM runtime for bodies and simulation behind the same engine boundary.

Source & documentation ↗

Isometric projection

ISO

@versytl/iso

Project world geometry, platforms, and objects into renderer-neutral isometric scenes.

Source & documentation ↗

Portable rendering

CTX

@versytl/ctx

Translate scene artwork for a CTX drawing target alongside the browser SVG renderer.

Source & documentation ↗

External data

Bridge

@versytl/bridge

An explicit adapter registry and a Go Getter pipeline source. Hosts control credentials, polling, and lifecycle.

Source & documentation ↗

Dashboard documents

Stasis

@versytl/stasis

Headless parsing, validation, bindings, and serialization for SVG dashboards shared by Stasis Builder and Pages.

Source & documentation ↗

PIPELINE OVERVIEW / LIBRARIES

Versytl library pipelines

The shared vector, scene, layout, animation, physics, and synchronization packages that make up Versytl.

Offline snapshotSep 21, 9:20 PM UTC
15Projects
13Passing
0Active
0Attention
PASSING · MAINBox2Dsource22e13capipeline#16resultPassing@versytl/box2dPIPELINE #1622E13CA1AUG 22, 9:57 PM UTC•••

Box2D pipeline Passing with 0 jobs.

PASSING · MAINBridgesourced108619pipeline#2resultPassing@versytl/bridgePIPELINE #2D108619AAUG 17, 1:43 AM UTC•••

Bridge pipeline Passing with 0 jobs.

PASSING · MAINClaysource29118a9pipeline#44resultPassing@versytl/clayPIPELINE #4429118A94AUG 22, 9:57 PM UTC•••

Clay pipeline Passing with 0 jobs.

PASSING · MAINCoresourcefa3a943pipeline#39resultPassing@versytl/corePIPELINE #39FA3A9433AUG 22, 9:57 PM UTC•••

Core pipeline Passing with 0 jobs.

PASSING · MAINCTXsource42dee59pipeline#21resultPassing@versytl/ctxPIPELINE #2142DEE59DAUG 22, 10:06 PM UTC•••

CTX pipeline Passing with 0 jobs.

PASSING · MAINISOsource46ba693pipeline#30resultPassing@versytl/isoPIPELINE #3046BA6939AUG 22, 9:58 PM UTC•••

ISO pipeline Passing with 0 jobs.

PASSING · MAINObjectssourceefc3d2epipeline#27resultPassing@versytl/objectsPIPELINE #27EFC3D2E9AUG 22, 9:59 PM UTC•••

Objects pipeline Passing with 0 jobs.

PASSING · MAINPhysicssource062820bpipeline#17resultPassing@versytl/physicsPIPELINE #17062820B1AUG 22, 10:00 PM UTC•••

Physics pipeline Passing with 0 jobs.

PASSING · MAINRapiersource23440c9pipeline#45resultPassing@versytl/rapierPIPELINE #4523440C98AUG 22, 10:00 PM UTC•••

Rapier pipeline Passing with 0 jobs.

PASSING · MAINScenesource09d567apipeline#27resultPassing@versytl/scenePIPELINE #2709D567AFAUG 30, 5:33 PM UTC•••

Scene pipeline Passing with 0 jobs.

PASSING · MAINShipkitsource804419cpipeline#60resultPassing@versytl/shipkitPIPELINE #60804419C2SEP 2, 4:43 PM UTC•••

Shipkit pipeline Passing with 0 jobs.

PASSING · MAINStasissource7ad797fpipeline#10resultPassing@versytl/stasisPIPELINE #107AD797FEAUG 25, 9:10 PM UTC•••

Stasis pipeline Passing with 0 jobs.

PASSING · MAINTweensource60e09dfpipeline#12resultPassing@versytl/tweenPIPELINE #1260E09DF1AUG 22, 10:06 PM UTC•••

Tween pipeline Passing with 0 jobs.

AWAITING STATUS · MAINWidgetssourcewaitingpipelinewaitingresultAwaiting status@versytl/widgetsPIPELINE UNAVAILABLENO REVISIONNO PIPELINE SNAPSHOT YET•••

Widgets pipeline Awaiting status with 0 jobs.

AWAITING STATUS · MAINYjssourcewaitingpipelinewaitingresultAwaiting status@versytl/yjsPIPELINE UNAVAILABLENO REVISIONNO PIPELINE SNAPSHOT YET•••

Yjs pipeline Awaiting status with 0 jobs.

Pipeline data comes from the cached Go Getter API and refreshes automatically. No GitLab credential is shipped to the browser.

Built to stay understandable

Portable by structure.
Expressive by design.

Scene-first

The document is more than a picture.

Semantic components travel with the artwork, preserving the facts an application needs.

Layered

Engines stay in their own lanes.

Renderers draw. Layout measures. Physics simulates. Shared records merge edits. Applications choose how the pieces work together.

Inspectable

What you see remains yours.

Open formats and visible controls make graphical applications easier to understand, edit, and carry forward.

Versytl Framework

Make the interface
part of the idea.

Back to top