← All repositories

hivevm/comb

Node-based visual workflow engine and UI coordinator. A browser node editor on WebGL2 with a Rust engine compiled to WebAssembly, built for tens of thousands of nodes.

  • Rust
  • WebAssembly
  • WebGL2
  • Specs + ADRs
Language
Rust · TypeScript
License
MIT
Commits
22 commits
Last update
Oct 2026
View on GitHub

01 / Overview

Comb is a high-performance, interactive node-editor framework for the browser, built to stay responsive with tens of thousands of nodes.

Nodes, edges, connectors and edge labels are drawn on a WebGL2 canvas with PixiJS. Users create, connect, move and delete graph elements directly on the canvas, while attribute forms stay in the host application’s HTML. Geometry runs in a Rust engine compiled to WebAssembly.

A host app passes an element to createComb, loads a graph of nodes and edges, calls fitView() and subscribes to selection changes through onSelectionChange. The full example is in examples/metric-tree/.

02 / Architecture

How it fits together

crates/engine

The engine's pure Rust core (ADR-0009).

crates/engine-wasm

The Rust side of the bridge, containing all WebAssembly exports (ADR-0010).

packages/comb

The library, with api, store, interaction, render and bridge modules.

examples/metric-tree

An example host application with browser tests.

03 / Decisions

Specifications and decisions

Written specifications and architecture decision records live next to the code, so the reasoning behind the design stays reviewable.

04 / Getting started

Try it

Run inside the Dev Container: VS Code with the Dev Containers extension (or a compatible IDE) and Docker or rootless Podman.

$ git clone https://github.com/hivevm/comb
$ cd comb
$ bun run build
$ bun run test
$ bun run example