Selected work
Real workflows, governed systems, shipped products.
A compact view of the systems I build across product engineering, applied AI and AEC technology. Each project is organized as Problem → Built → My role → Evidence.
Turning fragmented engineering evidence into a defensible determination.
Owner requirements arrive in prose, drawings, schedules and BIM models. The system compiles them into predicates, investigates the evidence graph and keeps the final decision deterministic.
Read the full case study →
02 · Production systems
Revit API engineering that survives the host.
A production add-in is not a script that runs once. It has to respect Revit's document lifecycle, transaction model, external event queue, model state, version upgrades and the people using it.
Problem
Engineering automation often works in a controlled demo and becomes unreliable inside a long-running desktop host.
Built
Version-aware C#/.NET add-ins with WPF/MVVM surfaces, deterministic QA and explicit evaluation runs.
My role
Technical ownership from workflow discovery and architecture through implementation, validation and release.
Featured interaction
A decision should be able to show its work.
Trace a synthetic requirement from claim and scope through sources, model elements, predicate, findings and final determination.
Fig. 01Evidence topologySynthetic data
Drag nodes to rearrange. Hover for one hop. Click to lock the full chain. Keyboard focus is supported.
Population
P = {x1, x2, …, x14}
Universal claim
∀x ∈ P, h(x) ≥ 10ft
Counterexample · Fixture L-114
h(x14) = 8.5ft < 10ft
Existential statement
∃x ∈ P : h(x) < 10ft
One counterexample is enough to disprove the universal claim — this is the same graph above, read as a formal statement.
View the reasoning chain as text
- Claim: exterior luminaires must be mounted at least 10 ft.
- Scope: all applicable exterior fixtures in the loading dock and Corridor B12.
- Sources: drawing E1.01 and the lighting schedule inform the evaluation.
- Predicate: evaluate h(x) ≥ 10 ft for every element in the population.
- Counterexample: Fixture L-114 is recorded at 8.5 ft.
- Determination: NOT MET. One valid counterexample disproves the universal claim.
One valid counterexample is enough to disprove the universal claim. The graph makes that reasoning inspectable.
Verification playground
From language to proof.
Run a small synthetic requirement check. The output keeps the distinction visible: AI can investigate the sources, while governed logic makes the determination.
Requirement“All exterior luminaires shall be mounted above 10 ft.”
∀x ∈ P, h(x) ≥ 10ft
- Scanning Drawing E1.01…
- Cross-referencing Lighting Schedule…
- Matching BIM instances…
Population P — 14 fixtures, mounting height
- 14 fixtures analyzed
- 13 compliant
- 1 below threshold — Fixture L-114, mounted at 8.5 ft
Featured interaction · AEC
The same building, three ways of seeing it.
Topology asks where the spaces and structure are. Systems asks how services move through them. Evidence asks where a requirement meets physical reality.
Topology · room volumes, floor plates and the structural frame establish the physical building.
Drag to orbit · click to activate zoom · use the modes to change the question.
Product surface
The output belongs inside the workflow.
A good system does not stop at a model response. It gives the reviewer a traceable result, a source, a counterexample and a next action inside the environment where the work already happens.
Requirements + models + drawings
Evidence and engineering intelligence
AI investigation
Governed verification
Review, report and deployment
Selected experiments
What I am building next.
Independent of client-confidential work. Public artifacts go live as each project ships.