explaingit

jeonghopark/collective-trajectories

Analysis updated 2026-05-18

10JavaScriptAudience · designerComplexity · 4/5LicenseSetup · easy

TLDR

A real-time 3D visual art piece built with Three.js WebGPU: glowing filaments radiate from the center of a sphere, pulse toward the surface, and react to background audio.

Mindmap

mindmap
  root((Collective Trajectories))
    Visuals
      GPU filament strands
      Brightness pulse flow
      Surface ripple rings
    Layers
      Lines and glow halos
      Dot shell
      Opaque core sphere
    Tech
      Three.js WebGPU
      TSL compute shaders
      GPU storage buffers
    Interactivity
      Audio reactive shell
      OrbitControls rotate
      Debug GUI params
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Study how Three.js WebGPU compute shaders and StorageBufferAttribute work for GPU strand animation

USE CASE 2

Use the codebase as a reference for building audio-reactive WebGPU visualizations in Three.js

USE CASE 3

Fork the project to create a variation with different geometry or noise parameters for a creative installation

USE CASE 4

Learn how to structure a Three.js visual piece into feature modules for GPGPU, layers, audio, and GUI

What is it built with?

JavaScriptThree.jsWebGPUTSLVitepnpm

How does it compare?

jeonghopark/collective-trajectoriesx0cban/harnessabivan-tech/zvec-mcp
Stars10109
LanguageJavaScriptJavaScriptJavaScript
Setup difficultyeasyhardmoderate
Complexity4/54/53/5
Audiencedesignerops devopsdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · easy Time to first run · 5min

pnpm only (enforced by only-allow pnpm), WebGPU requires a modern browser (Chrome 113+), falls back to WebGL2 otherwise.

Free to use and modify with credit given to the artist, but commercial use requires prior written permission from the copyright holder.

In plain English

Collective Trajectories is a real-time 3D visual art piece made with Three.js using a WebGPU renderer. It shows a sphere with hundreds of glowing filaments growing from its center outward to its surface. Each filament curves through space using curl noise, and a brightness pulse flows along each strand from center to tip. When a pulse reaches the surface, it triggers ripple rings that spread outward across the sphere. The outer shell of dots expands and contracts in response to a background audio track. The project uses WebGPU compute shaders through Three.js's experimental WebGPU renderer and TSL node system to calculate each filament's position and brightness directly on the GPU every frame. Rather than animating strands on the CPU, it writes to storage buffers on the GPU and reads them back for rendering. The project falls back to WebGL2 on browsers without WebGPU support. Visual layers are broken into modules: the line strands, soft glow halos using additive blending, surface ripples, a static dot shell suggesting the sphere's surface, and an opaque core sphere at the center. The core sphere blocks filaments behind it for genuine depth. Fog and fake depth-of-field effects add further depth cues, since glowing additive lines cannot grow physically thicker. The animation starts after clicking a button in the center of the screen, which also starts the original audio track included in the repository. An orbit control lets you drag to rotate the sphere. A debug GUI, disabled by default, exposes dozens of parameters for tweaking strand count, curl noise, pulse speed, ripple spread, glow intensity, and more. This is a creative coding project, not a reusable library or tool. It uses pnpm and Vite for development. Both the code and the audio are original works by the artist, released under CC BY-NC 4.0, which allows free non-commercial use with attribution.

Copy-paste prompts

Prompt 1
Show me how Collective Trajectories uses Three.js TSL compute nodes to update strand positions and brightness on the GPU each frame via StorageBufferAttribute.
Prompt 2
How does the audio reactivity work in this project? Show me how audio.js measures RMS level and applies it to the shell radius uniform each frame.
Prompt 3
I want to add a new visual layer to this Three.js WebGPU scene. How are the existing layers structured and how do they read from the shared storage buffers?
Prompt 4
Explain how the U-shaped brightness envelope and flowing pulse effect are implemented in the GPGPU compute shader for each strand.

Frequently asked questions

What is collective-trajectories?

A real-time 3D visual art piece built with Three.js WebGPU: glowing filaments radiate from the center of a sphere, pulse toward the surface, and react to background audio.

What language is collective-trajectories written in?

Mainly JavaScript. The stack also includes JavaScript, Three.js, WebGPU.

What license does collective-trajectories use?

Free to use and modify with credit given to the artist, but commercial use requires prior written permission from the copyright holder.

How hard is collective-trajectories to set up?

Setup difficulty is rated easy, with roughly 5min to a first successful run.

Who is collective-trajectories for?

Mainly designer.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Scan in gitsafehub Deploy in gitdeployhub jeonghopark on gitmyhub

Verify against the repo before relying on details.