I'm Joe Pea (a.k.a. trusktr πΉ) β a builder and maintainer focused on expanding what HTML can do for interactive, graphic-rich web experiences.
I work on open web tooling, new HTML elements, and standards-aligned libraries that make it easier to create 2D and 3D experiences directly in the browser. I enjoy bringing together WebGL, WebAssembly, custom elements, and small, composable APIs that let people ship expressive, hardware-accelerated UIs without huge toolchains.
I help teams ship HTML-first accelerated interfaces without heavy toolchains.
This repo is my personal README/profile, showcasing my work, projects, and writing, and will evolve over time.
- Lume (~1.5k β ) Β· GLAS (~920 β ) Β· @lume/element (~170 β ) Β· classy-solid (~60 β )
- Contributor: Docsify (30k+ β ), SolidJS (34k+ β )
Along the way, I've contributed to widely used open-source projects and shipped production systems with teams at companies like SpaceX, NASA, Velodyne Lidar, and IMVU β building interfaces that connect humans to complex systems in real time.
View or download my resume (PDF)
Read the story of my journey into web development.
Career highlights
-
Lume Creative Technologies β Founder (Jul 2022βPresent)
- Advisory/lead engineering for 3D web apps. Recent engagements include:
- Drippy (2025β): Technical advisor guiding a junior team to ship a 3D-enabled Meteor.js app with Lume.
- Meta (2024β2025): Implemented a web-based 3D mesh editor with robust undo/redo for Reality Labs ML workflows; contributed fixes across their codebase.
- Luda Projects (2022β2023): Built a 3D NFT character creator (Neo Fairies) and added features to Mels (ML-driven characters) with Babylon.js, Three.js, and Lume.
- Autonomys (2023): Prototyped a 3D AI character starter integrating speech-to-text, LLMs, and text-to-speech with facial animation; revived AWS Sumerian Hosts; rendered with WebGL/Three/Lume.
- Advisory/lead engineering for 3D web apps. Recent engagements include:
-
Uthana β Software Engineer, 3D experience (FebβAug 2024)
- Designed and shipped an AI β 3D animation pipeline UI: upload a 3D model, describe motion, preview, tweak, and export; 2D UI overlaid on a 3D scene (WebGL/Three/Lume), with Python backend adjustments.
-
SpaceX β Senior Software Engineer, Starship Displays (Sep 2022βJun 2023)
- Built a custom plotting system capable of rendering ~1.2 million points/vertices from real-time Starship data at 10 Hz using Three.js/WebGL.
- Increased throughput of an existing plotting pipeline by ~1600% on target hardware; improved UI performance (e.g., grid β flexbox), introduced reactive patterns (signals/effects), migrated apps to TypeScript, and contributed to a custom-elements design system.
-
NASA β Software Engineer, web 3D (Apr 2021βAug 2022)
- ISAAC Astrobee robot visualizer (WebGL/Three), APRES timeline for planning/validation, and DSA satellite constellation viewer/command sequencer (HTML/CSS/JS, Solid.js, CodeMirror).
-
Velodyne Lidar β Senior Software Engineer, web (Jul 2019βApr 2021)
- Real-time perception visualizer for automotive AI, ingesting embedded telemetry (ROS/ZeroMQ) and rendering with WebGL; authored a reusable Custom Elements component system.
-
Mapper.ai β Senior Software Engineer, web (Apr 2018βJul 2019)
- 3D map βAnnotatorβ tool (Three.js), company website rebuild (React/TypeScript), and mobile graphics perf improvements.
-
Earlier highlights (2012β2018)
- AKQA for IBM Watson: interactive WebGL/GLSL effects, pagination state machine, inertial scrolling, particle systems.
- IMVU: TypeScript+React foundations, 3D scene editing UI with undo/redo and keyframe timeline.
- Freelance + product gigs: Meteor/React/Famous/Lume apps, module tooling, 3D UIs.
- Globant (The Climate Corporation): modular Backbone/Marionette frontends and map tiling upgrades.
- Federal Reserve Bank: InfoSec intern (firmware PoCs and mitigations).
- Hewlett Packard: frontend lead (Angular, Bootstrap) for storage analytics.
- Sacramento City College (Express newspaper), Clownfish Media: shipped production sites and interactive media tooling.
GPU-powered 3D HTML. New HTML elements for rich 2D/3D experiences with lights, shadows, models, and physics-like behaviors β all from markup. Under the hood, Lume composes WebGL and CSS3D while staying HTML-first and framework-agnostic.
- Why use it:
- Write 3D like you write HTML β declarative, readable, and portable across React, Vue, Svelte, Solid, Angular, and vanilla.
- Hardware-accelerated visuals with a tiny mental model and live, forkable examples.
- Designed for product teams: composable primitives, strong typing, and a steady release cadence.
- Explore: site Β· docs/examples Β· repo
A fast, minimal system for writing Custom Elements with reactive props, declarative templates (JSX or html tag), and scoped CSS. Integrates cleanly with Solid.jsβ fine-grained reactivity for predictable updates without a VDOM.
- Why use it:
- Create interoperable web components that work in any app or framework.
- First-class TypeScript DX: autocompletion and strong types across JSX ecosystems.
- Batteries included: decorators, attribute-to-prop mapping, and framework type helpers.
- Explore: repo/docs/examples
A single-file, zero-dependency html/svg/mathml template tag for declarative-reactive UIs. Render once, then update in place by calling the same template β no framework required.
- Why use it:
- Ultra-light: drop one file into any codebase; works with import maps/CDNs.
- Real DOM, no VDOM; event/prop/boolean bindings and SVG/MathML namespaces built-in.
- Power features when you need them (
force()updates, lightsaber!syntax, key-based instance identity).
- Explore: repo/examples
WebGL in WebAssembly via AssemblyScript. A long-term effort to port Three.js primitives and patterns to a Wasm core for predictable performance and tighter memory profiles.
- Why use it (or follow it):
- Push performance-sensitive graphics to Wasm while staying close to TypeScript ergonomics.
- A stepping stone toward cross-runtime rendering with strong type guarantees.
- Explore: repo Β· contributing
DOM bindings for AssemblyScript so WebAssembly code can manipulate the DOM directly (including Custom Elements). Useful when hot code paths need to hop across the Wasm boundary efficiently.
- Why use it:
- Call
document,window, and Custom Elements APIs from AssemblyScript. - Bridges ergonomically with AssemblyScript projects and Wasm tooling.
- Call
- Explore: repo Β· supported APIs
Class-based reactivity and class components for Solid.js. Decorators like @signal and @component make class properties reactive and renderable.
- Why use it:
- Keep OO ergonomics while using Solidβs fine-grained reactivity.
- Cleaner composition, better DX in codebases that prefer classes.
- Explore: repo
Buildless documentation that βjust works.β Not my original project, I'm a contributor and maintainer now. Explore: docsifyjs/docsify
Fine-grained reactivity that powers parts of Lume and @lume/element. The framework that coined "signals and effects". Not my original project, I'm an early adopter and contributor. Explore: solidjs/solid.
Demos, experiments, and small building blocks. Source is in ../scratchpad/.
CodePen β trusktr
X (formerly Twitter) β @trusktr
Bluesky β @joe.trusktr.io
Mastodon β @trusktr@indieweb.social
LinkedIn β Joe Pea
If you'd like to collaborate on creative interactive experiences, web standards, or custom element design, feel free to connect on any of the profiles above β I enjoy sharing knowledge and working with teams to build expressive, open web experiences.
β Joe (trusktr)
