abstractalgo / constellation

a high-performance SDK for building GPU-rendered large-scale canvas-based apps

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Outline

abstractalgo opened this issue · comments

Architecture

  • monorepo
    • apps
    • packages
      • interactions
      • renderer
      • RTE rendering
      • React bindings
      • default, provided primitives and shapes
  • extensible (plugin system)
  • JS (imperative), but with React bindings (declarative)
    • custom reconciler (r3f-like)
    • custom hooks

Renderer

  • custom shapes (API)
  • tile-based
  • caching
  • LODs
  • culling
  • batching, bucketing, instancing
  • lazy (re-render only on change)
  • (dynamic res)
  • (animations)

Graph-based features & interactions:

  • dependencies: between nodes (aka links), parent-child relationship (groups, nesting), clustering
  • camera: pan, zoom
  • selection: picking, hover, brush, click/select, swoosh, lasso
  • transform: drag, rotate, group, resize
  • shapes: path (path, rect, rounded rect, circle, ellipsis,...), SDF/CSG

Alignment & ordering:

  • align guides
  • on a grid (step movement)
  • group alignment: top, bottom, left, right
  • distribute (horizontal, vertical, grid)
  • ordering: forward, backward, front, back