Independent interactive systems studio · product engineering

Boutique product design for systems that need to be understood, felt and trusted.

I combine systems architecture, interaction design, prototyping and implementation for products where behavior matters as much as appearance. The work moves from domain models and experiments to polished interfaces, strict engineering boundaries and browser-level verification.

Selected work

A small set of active systems, shown in depth.

The portfolio is deliberately selective. Each flagship study shows a different kind of systems problem and the path from product intent through interaction design to architecture, verification and deployment.

Information modeling

Timeline

A local-first chronology and relationship workspace with a renderer-independent temporal projection layer and retained keyed scene. Overscan, interaction retention and commit-time reconciliation preserve identity and performance while timeline, graph and map views evolve toward a coordinated model.

Temporal projectionGraph + mapRetained sceneVite 8
Read case study
Media systems

Slipmat

A playback-first media system organized as domain contracts, deterministic planners and state machines, adapters and services, presentation models, then platform projections. Playback authority stays explicit across Jellyfin, local media, native processing and the interface.

React 19Rust 2024Tauri v2Media state
Private · active product development Read case study
Procedural systems

Defend

A behavioral-parity modernization of a physics-driven strategy game. The historical Webpack/Babylon/Cannon build remains an executable reference while the active modernization lane isolates deterministic domain logic, worker and audio ownership, and renderer-independent contracts.

Babylon.jsPhysicsWebAssemblyProcedural audio
Read case study
Economic simulation

Lemonade

A deterministic economic simulation whose core is prohibited from depending on ambient time, randomness, browser state or rendering libraries. Three.js, Web Audio, storage and UI remain adapters, while fixed-seed certification makes balance and accounting reviewable.

TypeScript 6LitThree.jsDeterminism
Public · active development Read case study

Active lab

Smaller systems that test a specific idea hard.

These projects stay visible because their current architecture or interaction problem is distinctive, not because every active repository belongs on the front page.

Browse the wider repository archive

Capabilities

A design studio with an engineering core.

The strongest engagements are systems with unusual state, timing, media, simulation, hardware or information-model constraints—places where interaction design and architecture cannot be separated.

01

Product and system architecture

Clarify the domain, ownership, authority and lifecycle before UI complexity hardens around accidental implementation details.

02

Interaction and prototyping

Build working experiments early enough to test spatial behavior, timing, transitions, feedback and physical or media interaction.

03

Native web experiences

Use semantic HTML, modern CSS, View Transitions, Web Animations and progressive enhancement before adding runtime abstraction that the platform already provides.

04

Engineering and verification

Turn successful experiments into durable systems with strict types, deterministic tests, performance evidence, accessibility checks and CI-backed browser certification.

Approach

Explore freely. Promote evidence. Encode the result.

The studio process deliberately separates discovery from commitment. A fast experiment can stay cheap; a behavior only becomes architectural once there is enough evidence to protect it.

01

Model the problem

Map actors, constraints, states and failure modes. Make ownership explicit before selecting a presentation architecture.

02

Prototype the behavior

Use playable software, real media, real hardware and representative data to test the interaction rather than only describing it.

03

Harden what survives

Move proven behavior into types, tests, contracts, CI and documentation so later iteration can remain fast without losing the model.

Professional thread

Design practice informs the way I engineer software.

My background connects graphic design, multimedia production and teaching with public-service software, large planning interfaces and systems engineering. Code is a design material: a way to clarify relationships, test assumptions and shape interaction.

The through-line is not a particular framework. It is the ability to move between visual composition, user observation, state modeling, implementation, performance analysis and verification without treating those disciplines as separate handoffs.

Read the professional experience narrative