finds.dev← search

// the find

brunosimon/folio-2019

★ 4,704 · JavaScript · MIT · updated May 2024

Bruno Simon's 2019 personal portfolio — a fully 3D, physics-driven WebGL experience where you drive a car around a world to see his work. Built with Three.js and Cannon.js, it won multiple Awwwards trophies and became one of the most-starred portfolio repos on GitHub. Worth studying if you want to see what a production-grade Three.js scene architecture looks like.

The World/Sections split is genuinely well-structured for a project this size — each portfolio section is an isolated class that gets registered into the world, so adding or removing content doesn't touch the core render loop. Custom GLSL shaders are written per-material rather than relying on Three.js MeshStandardMaterial, giving fine control over the matcap rendering and floor shadow blending. Draco compression on all GLB assets keeps load times down despite the volume of geometry. The EventEmitter utility wires the whole scene together without any framework dependency, which is a reasonable call for something this self-contained.

This is a portfolio piece, not a library — there is no abstraction you can lift out and reuse, and the code reflects that. Everything is coupled to Bruno's specific content: sections, models, and project slides are all hardcoded. The README is four lines; if you want to understand how it works you're reading source cold. Physics (Cannon.js) is not on the critical path for load but gets initialized regardless, adding weight even on mobile where the experience is degraded anyway. The repo hasn't been touched since 2024 and depends on Parcel 1 with a lockfile that will drift — expect a few hours of dependency archaeology before `npm run dev` works cleanly.

View on GitHub →

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →