One canvas engine hosts CAD floor plans and wandering game units — position is data
Описание и применение
Kimetron Isle объединяет редактор планов и движок для перемещения игровых единиц, используя координаты как данные, обеспечивая гибкую политику столкновений и масштабируемость.
Задача
Canvas libraries typically treat coordinates as screen pixels, limiting their use for design data where coordinates are the data itself.
Результат
Kimetron Isle enables a single engine to host both CAD floor plans and wandering game units by treating position as data, providing robust world‑coordinate features and collision policies.
Рабочий процесс
- Define world units (mm, m, inch, px) and origin orientation.
- Create geometry objects (walls, doors, rocks, units) with properties such as solid, canOverlap, collisionMode.
- Use built‑in snapping (grid, vertices, midpoints, centers) or inject custom snaps via snapExtra.
- Move objects programmatically with tryMove, ensuring collision policies are respected.
- Render with @kimetron/dom or adapt to React via @kimetron/react.
- Serialize or undo/redo changes as needed.
Доказательства
I built two production apps (Plesfeda, Sethera Piece) on React Flow, and learned that what a canvas library does for you stops at rendering, dragging, selection, and the viewport.
Same engine in both cases. The only difference is the policy each driver declares: "a door may overlap a wall", "rocks can't move", "units can't stack" — a few lines of driver code each.
v1.0.0 is a stability commitment — additive‑only changes since 0.6.0. There are still gaps: associated dimensions, named layers, and block references are 1.x territory; Svelte/Vue adapters are "structurally possible" rather than built; collaboration and cloud storage are deliberately out of scope.
- Дата записи: 2026-10-16T12:56:29.755Z