One canvas engine hosts CAD floor plans and wandering game units — position is data
说明与用途
Kimetron Isle 将 CAD 平面图编辑与游戏单位移动集成到同一引擎中,通过将坐标视为数据,实现灵活的碰撞策略和可扩展性。
问题
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