Personal Projects Portfolio
Executive Summary
A personal project to build a suite of software leveraging procedural approaches on a fully self-built stack. Three foundations — a GPU GUI framework, a node graph engine and a NURBS/B-rep CAD kernel — live in one Rust monorepo and are integrated into Strura, a parametric BIM application. Two independent applications, Sora (web GIS) and Lattice (P2P life data), cover the geographic and everyday sides of the same idea: visualize and manage real-world things through data you own.
Project Overview
| Project | Category | Description |
|---|---|---|
| Strura | Parametric BIM | Design by combining parts, on one model that grows through every phase |
| GUI Framework | Foundation | Declarative, signal-based GUI framework rendered entirely on the GPU |
| Graph Engine | Foundation | Node graph execution engine — every building element is a subgraph |
| CAD Kernel | Foundation | NURBS curves and surfaces, B-rep topology, booleans, tessellation |
| Sora | Web GIS | Geographic data recording and visualization on the web |
| Lattice | P2P Platform | Life data studio that runs entirely on your device (P2P + CRDT) |
System Architecture
┌───────────────────────────────────────────────┐
│ Strura │
│ parametric BIM — native (macOS / Windows) │
│ and WebAssembly in the browser │
└───────────────────────┬───────────────────────┘
│
┌───────────────────────────────┼───────────────────────────────┐
▼ ▼ ▼
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ GUI Framework │ │ Graph Engine │ │ CAD Kernel │
│ GPU rendering, │ │ typed DAG, │ │ NURBS, B-rep, │
│ signals, UI + │ │ caching, op │ │ booleans, │
│ 2D/3D viewports│ │ log, subgraphs │ │ tessellation │
└─────────────────┘ └─────────────────┘ └─────────────────┘
┌─────────────────┐ ┌─────────────────┐
│ Sora │ │ Lattice │
│ (Web GIS) │ │ (P2P / CRDT) │
└─────────────────┘ └─────────────────┘
architecture × geography visualize & manage daily life
The three foundations are not libraries consumed from outside: they are crates of the Strura monorepo, developed against the application that uses them, and kept detachable by a single rule — nothing under the foundations depends on the application.
Project Details
Strura — Parametric BIM
Role: the product. Everything below exists to make it work.
One model through every phase. Zoning, structural design and detailed design are not separate tools: you block out volumes early and keep refining the same elements down to the final drawings. Everything you place carries meaning — a wall knows its floor, its openings and its material — so area, cost, quantities and regulatory checks update as you model.
What it does today
- A BIM object vocabulary (walls, slabs, columns, openings, stairs, ramps, railings, roofs, furniture, zones) composed from a small set of generic nodes, including curved walls and curved and spiral stairs
- Drawing import with calibration and tracing
- Real-time cost and quantity simulation
- A GPU path tracer for photoreal stills
- An AI assistant that drives the same operations a user does, with one undo entry per turn
- Native macOS and Windows builds plus a WebAssembly build — one code base
Next
- Accounts, plans and billing, so that the application can be released to early users
- A wider catalogue of building elements and materials
GUI Framework — Declarative GPU GUI
Role: rendering foundation for the whole suite
A declarative GUI framework that renders entirely on the GPU. The interface and the 3D scene share one WGPU pipeline, so there is no bridge between UI and model.
Key Technologies
- GPU-accelerated rendering pipeline (text, vector shapes, 3D)
- Signal-based reactivity in the style of SolidJS / Leptos
- Typed builder API for composing components
- Design system with light and dark themes
- Inspector and end-to-end harness that drive a running app from outside
Graph Engine — Node Graph Execution
Role: the logic layer — what makes the model parametric
A node graph engine with typed ports, incremental execution and caching. In Strura every building element is a subgraph and the project is one graph; change a parameter and everything downstream re-executes.
Key Technologies
- DAG execution with per-node caching
- Subgraphs and templates (how BIM object families are defined)
- Append-only operation log with inverse operations — exact undo/redo and persistence in one mechanism
- Plugin registration of node implementations
- Runs natively and in WebAssembly
CAD Kernel — Geometry
Role: the geometry layer under every wall, slab, stair and roof
A NURBS / B-rep kernel developed inside the visual environment the application provides: every operation can be seen and verified on screen while it is implemented.
Key Technologies
- NURBS curves and surfaces, B-rep topology
- Extrude, revolve, loft, sweep, offset, trim
- Boolean operations and surface–surface intersection
- Adaptive, curvature-based tessellation
Sora — Web GIS
Role: the geospatial layer
A web application for recording and visualizing geographic data. It stands on its own today; connecting Strura models to geographic context (site placement, surroundings, sunlight) is a planned integration.
Lattice — Life Data Studio
Role: visualize and manage daily life
A cross-platform app built on P2P and CRDT synchronization with zero running cost: notes, tasks and charts that live entirely on your devices and merge without a server.
Roadmap
| Stage | Status | Scope |
|---|---|---|
| Foundations | Done | GUI framework, graph engine, CAD kernel, monorepo |
| Strura core | Done | BIM vocabulary, drawing import, cost simulation, AI assistant, GPU rendering, save/load |
| Strura release | In progress | Accounts and billing platform, distribution for macOS and Windows, web build |
| Integration | Next | Strura × Sora for architecture in geographic context |
| Expansion | Later | Other domains where the same graph-based approach fits |
Technical Skills Demonstrated
| Domain | Technologies & Concepts |
|---|---|
| Graphics & Rendering | GPU programming, WGPU / WebGPU, shader development, path tracing |
| CAD / Geometry | Computational geometry, B-rep modeling, NURBS, booleans, tessellation |
| BIM | Building information modeling, parametric objects, cost and quantity |
| Graph Computation | DAG execution, caching, operation logs, undo/redo |
| Distributed Systems | P2P networking, CRDTs, eventual consistency |
| GIS / Mapping | Geospatial data, coordinate systems, map rendering |
| Software Architecture | Monorepo design, plugin systems, clean architecture, Rust across native and WebAssembly |
Vision
A self-built software suite, independent of commercial software, for domains where procedural approaches excel — starting with architecture and expanding from one proven application rather than from a platform in search of a use.