PulsarPulsar/ Blog
← All posts

#rust

25 posts
Latestrustgpuiwgpu

Profiling the UI Itself: A CPU+GPU Flamegraph and RenderDoc-Style Replay Viewer for GPUI

Building a feature-gated CPU+GPU profiler directly into GPUI's Inspector panel: span capture, counters, memory snapshots, a RenderDoc-style GPU deep capture and replay engine, and a flame chart rendered with a custom instanced GPU shader instead of one UI element per bar.

Tristan Poland (Trident_For_U)
·12 min read
Read →
Profiling the UI Itself: A CPU+GPU Flamegraph and RenderDoc-Style Replay Viewer for GPUI
SceneDB 2.0: The Cross-Device Spatial Database
scenedbecs

SceneDB 2.0: The Cross-Device Spatial Database

A deep technical walkthrough of SceneDB 2.0, a cross-device spatial database that replaces the traditional push-model ECS with GPU-native columns, delta-minimal uploads, self-healing slot mirrors, and compile-time frame phase enforcement.

Tristan Poland (Trident_For_U)
Sepehr
·116 min
Type-Agnostic Reflection: How Pulsar's Property Editors Shed JSON, Became Entities, and Stopped Knowing What They Were Editing
rustreflection

Type-Agnostic Reflection: How Pulsar's Property Editors Shed JSON, Became Entities, and Stopped Knowing What They Were Editing

How Pulsar's property editor system evolved from JSON-mediated stateless function pointers to entity-based factories with type-erased value channels — and why eliminating type knowledge from the framework layer made the entire editor registry extensible without per-type boilerplate.

Tristan Poland (Trident_For_U)
·10 min
Helio Radiant: Zero-Cost Custom Materials Through Template Fusion
rusthelio

Helio Radiant: Zero-Cost Custom Materials Through Template Fusion

How Helio's Radiant material system combines hand-authored shader templates with graph-generated WGSL snippets to deliver custom surface shaders with zero per-permutation PSO cost — through warp-uniform feature branches, lazy shader compilation, and draw-call grouping by material class.

Tristan Poland (Trident_For_U)
·21 min
Multi-Data-Output Nodes — One Binding, Many Pins
graphypsgc

Multi-Data-Output Nodes — One Binding, Many Pins

How Pulsar's node graph compilers handle nodes that produce multiple values — the cross-language accessor pattern, compiler internals, and the #[output] / bp_return! macros.

Tristan Poland (Trident_For_U)
·8 min
Pulsar's Blueprint Compiler: Graphs, Types, and Transpilation
rustgame-engine

Pulsar's Blueprint Compiler: Graphs, Types, and Transpilation

A deep dive into Pulsar's Blueprint Graph Compiler — how graph descriptions are structured, how type checking validates connections with a coercion registry, how data flow analysis computes pure node evaluation order, how the exec_output!() marker macro is lowered via AST transformation, and how the same graph compiles to both bytecode for the editor VM and native Rust for shipping builds.

Tristan Poland (Trident_For_U)
·33 min
The Pulsar Blueprint System: From the Blueprint Macro to Runtime Execution
rustgame-engine

The Pulsar Blueprint System: From the Blueprint Macro to Runtime Execution

A complete walkthrough of Pulsar's Blueprint visual scripting system — how the #[blueprint] macro transforms Rust functions into graph nodes, how the reflection system and component methods feed into the node palette, and how the dual-path execution runtime runs bytecode in the editor and transpiled Rust in shipping builds.

Tristan Poland (Trident_For_U)
·40 min
The AI in the Machine: AI Tools and Context at Scale
rustgame-engine

The AI in the Machine: AI Tools and Context at Scale

How Pulsar's plugin-driven AI system lets the agent discover, traverse, and invoke tools through a macro-based pipeline — without dumping your entire codebase into a system prompt.

Tristan Poland (Trident_For_U)
·20 min
Helio Fusor: How the Executor Took Ownership of the Render Pass and Why Nobody Noticed
rusthelio

Helio Fusor: How the Executor Took Ownership of the Render Pass and Why Nobody Noticed

How Helio's Fusor system fuses adjacent render passes into a single GPU render pass — why the executor, not the passes, owns the render pass lifecycle, how passes write to a pointer they don't own, and what this saves on Vulkan, Metal, DX12, and WebGPU.

Tristan Poland (Trident_For_U)
·19 min
Post Processing and Custom Shader Injection in Helio
rusthelio

Post Processing and Custom Shader Injection in Helio

How Helio handles post processing — the uber-pass design, multi-point shader injection, GPU volume blending, auto-exposure, bloom, color grading, and the post-process volume system with GPU-side spatial blending.

Tristan Poland (Trident_For_U)
·11 min
Making GPUI Fast: A Compositor Thread, an Overscroll Buffer, and Why Browsers Don't Re-Render on Scroll
rustui

Making GPUI Fast: A Compositor Thread, an Overscroll Buffer, and Why Browsers Don't Re-Render on Scroll

How we're planning to pull a CoreAnimation-style compositor thread and a browser-inspired overscroll buffer into GPUI to move essentially all rendering work off the main thread — and why scrolling a massive list should cost near-zero CPU time.

Tristan Poland (Trident_For_U)
·41 min
Cascaded Shadow Maps: From Matrix Compute to PCSS Filtering
rusthelio

Cascaded Shadow Maps: From Matrix Compute to PCSS Filtering

A complete walkthrough of Helio's shadow pipeline — GPU matrix generation for point/directional/spot lights, the 256-layer shadow atlas with GPU-driven dirty tracking, per-face frustum culling, and PCSS soft shadows with Vogel disk sampling.

Tristan Poland (Trident_For_U)
·18 min
Why Compute Shaders Beat CPU Loops: Helio's O(1) Frame Cost Philosophy
rusthelio

Why Compute Shaders Beat CPU Loops: Helio's O(1) Frame Cost Philosophy

A deep technical walkthrough of Helio's GPU-driven architecture — why the CPU never iterates over objects, how every frame costs the same regardless of scene complexity, and what it took to make that work in practice.

Tristan Poland (Trident_For_U)
·21 min
Cross-Platform GPU Programming Without Losing Your Mind
rusthelio

Cross-Platform GPU Programming Without Losing Your Mind

A practical field guide to the platform differences that actually matter when building a GPU renderer on wgpu — bindless limits, indirect draw capabilities, texture format support, and the WGSL footguns that look the same everywhere but behave differently nowhere you expect.

Tristan Poland (Trident_For_U)
·16 min
Culling Done Right: Fixing What Everyone Gets Wrong About GPU Culling
rusthelio

Culling Done Right: Fixing What Everyone Gets Wrong About GPU Culling

A deep technical postmortem of Helio's culling system — the critical bugs that caused objects to vanish when they shouldn't and appear when they shouldn't, the fixes that brought everything inline with AAA standards, and what a 110% occlusion-culled stat taught us about atomic counter races.

Tristan Poland (Trident_For_U)
·22 min
Editor Gizmos: 3D Transform Manipulation in Rust
rusthelio

Editor Gizmos: 3D Transform Manipulation in Rust

A technical walkthrough of Helio's editor gizmo system — how translate/rotate/scale handles work, the ray intersection picking for handle selection, the axis-aligned rendering, and how everything integrates with the debug draw pipeline for zero-cost editor visualization.

Tristan Poland (Trident_For_U)
·20 min
Building an In-Engine GPU Profiler for Fun and Frame Time
rusthelio

Building an In-Engine GPU Profiler for Fun and Frame Time

A thorough technical walkthrough of how Helio's built-in profiler works — zero-instrumentation pass timing, GPU timestamp queries, resolve buffer mechanics, staging readback without stalling, and the live telemetry viewer that ties it all together.

Tristan Poland (Trident_For_U)
·17 min
Radiance Cascades: Probe-Based Global Illumination
rusthelio

Radiance Cascades: Probe-Based Global Illumination

A technical walkthrough of Helio's probe-based global illumination system — how a sparse grid of radiance probes captures indirect light, the cascade atlas format, multi-bounce accumulation, ambient fallback outside the grid, and why we're waiting on hardware ray tracing for the next step.

Tristan Poland (Trident_For_U)
·15 min
Designing a Render Graph That Doesn't Get in the Way
rusthelio

Designing a Render Graph That Doesn't Get in the Way

A detailed walkthrough of Helio's render graph — how passes declare resource dependencies, the lazy bind-group rebuild pattern, subpass chaining for framebuffer compression, and why we chose typed passes over a JSON graph.

Tristan Poland (Trident_For_U)
·18 min
Tiled Light Culling: From Linear Scan to Forward+
rusthelio

Tiled Light Culling: From Linear Scan to Forward+

A technical walkthrough of Helio's tile-based light culling system — how we replaced a linear per-pixel light scan with a compute shader that assigns lights to 16x16 tiles, the tile frustum construction, the cache key that makes it free on static scenes, and what 1000+ dynamic lights look like in practice.

Tristan Poland (Trident_For_U)
·12 min
Corona: Building a GPU-Native Particle System
rusthelio

Corona: Building a GPU-Native Particle System

A full technical walkthrough of Corona — Helio's GPU-native particle system. How we went from invisible particles and flickering garbage to a million stable, depth-sorted, atlas-rendered particles using prefix sums, bitonic sort, and a lot of debugging.

Tristan Poland (Trident_For_U)
·22 min
EngineFS: Pulsar's Virtual Filesystem Layer
rustgame-engine

EngineFS: Pulsar's Virtual Filesystem Layer

How Pulsar abstracts every file operation behind a swappable provider trait — making local disk, HTTP remote, and P2P collaborative sessions all look identical to every crate above them.

Tristan Poland (Trident_For_U)
·9 min
Pulsar's Reflection System: From Macro to Properties Panel
rustgame-engine

Pulsar's Reflection System: From Macro to Properties Panel

A deep dive into how Pulsar's runtime reflection system works — from the EngineClass derive macro and property attributes through to the Properties panel that uses that metadata to generate a live editing UI with zero handwritten widget code.

Tristan Poland (Trident_For_U)
·16 min
Pulsar's Subsystem Architecture: How the Engine Core Ends Up Knowing Nothing
rustgame-engine

Pulsar's Subsystem Architecture: How the Engine Core Ends Up Knowing Nothing

A thorough walkthrough of how Pulsar's subsystem and component architecture achieves genuine decoupling — components only import the subsystems they touch, the central engine knows nothing about any of them, and the whole system is open to extension by plugins without modifying engine code.

Tristan Poland (Trident_For_U)
·15 min
Introducing Helio: A GPU-Driven Renderer Built in Rust
rustgame-engine

Introducing Helio: A GPU-Driven Renderer Built in Rust

A deep technical walkthrough of Helio — the custom GPU-driven deferred renderer we built for Pulsar. Why we built it, how its pipeline is structured, and what we learned along the way.

Tristan Poland (Trident_For_U)
·19 min