Skip to content
View trusktr's full-sized avatar
📜
writing code
📜
writing code

Organizations

@Buzztrax @lume @tweenjs @AssemblyScript @docsifyjs

Block or report trusktr

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Maximum 250 characters. Please don't include any personal information such as legal names or email addresses. Markdown supported. This note will be visible to only you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
trusktr/.md

Hi there 👋

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.

At a glance

Table of contents

Resume

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)

Web origins

Read the story of my journey into web development.

Career highlights

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.
  • 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.

Featured projects


lume

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


@lume/element

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


nimble-html

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


glas

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


asdom

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.
  • Explore: repo · supported APIs


classy-solid

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


Docsify

Buildless documentation that “just works.” Not my original project, I'm a contributor and maintainer now. Explore: docsifyjs/docsify


Solid.js

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/.

Writing

Where to find me

GitHub icon GitHub@trusktr (experiments and code libraries)

CodePen icon CodePentrusktr

X icon X (formerly Twitter)@trusktr

Bluesky icon Bluesky@joe.trusktr.io

Mastodon icon Mastodon@trusktr@indieweb.social

LinkedIn icon LinkedInJoe 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)

Pinned Loading

  1. lume/lume lume/lume Public

    GPU-powered 3D HTML. ✨🧊 <lume-box size="1 2 3">

    TypeScript 1.5k 62

  2. lume/glas lume/glas Public

    WebGL in WebAssembly with AssemblyScript

    TypeScript 924 45

  3. lume/element lume/element Public

    Fast and simple custom elements.

    TypeScript 176 5

  4. tweenjs/tween.js tweenjs/tween.js Public

    JavaScript/TypeScript animation engine

    TypeScript 10.1k 1.4k

  5. docsifyjs/docsify docsifyjs/docsify Public

    🃏 A magical documentation site generator.

    JavaScript 30.7k 5.8k

  6. lume/nimble-html lume/nimble-html Public

    A light-weight `html` tagged template string function for writing declarative-reactive web apps. Zero dependencies.

    JavaScript 63 1