@dopejs/deckle-core
camera, scene store transactions, lifecycle, visibility, budgets
camera (400, 300) · zoom 0.90
Keeping hundreds of generated pages alive as iframes doesn't scale. Flattening them to images loses selection and events. Deckle keeps the space in between: cached paint you can still reach into.
Artifact = source + durable state + interaction tree + paint cache + optional live runtime
Lifecycle
Every artifact moves through an explicit state machine. Live DOM, runtimes, and GPU textures are budgeted resources granted by visibility and interaction — never ambient.
Streaming
An agent emits an artifact token by token. Every kind commits at its own boundary — a grapheme, a line, a closed markdown construct, a JSON value, a decided HTML tag — and that boundary only ever moves forward, so a reader never sees an interpretation get retracted.
Packages
Optimized implementations ship next to naive reference implementations and are differentially tested against them — the oracle stays available as a rollback path.
camera, scene store transactions, lifecycle, visibility, budgets
grid spatial index plus the naive differential oracle
revisions, interaction tree, canonical serialization
static-profile sanitizer, URL policy, quotas, capabilities
runtime message protocol, epochs, capability-guarded bridge
retained pictures, canvas-native content rendering, LOD, texture budget
internal hit testing, selection model, virtual event paths
shared pre-release vocabulary
HTML-in-Canvas capability probes, evidence manifests
Status
The engine contracts are implemented and tested. The browser-evidence gates are not exited: support for the experimental HTML-in-Canvas APIs is a capability we detect, not a claim we make. No open-source license has been selected yet.