sbondaryev
a month ago
I skimmed the source code (base.js, light.js) to see what he was using. It appears to be entirely custom, with no graphics libraries like Three.js. He even implements his own low-level math functions from scratch. It's impressive to see that kind of discipline.
kubb
a month ago
The best programmers are cautious about dependencies. Taking something is easy. But you don't learn. And you give up control.
chrismorgan
a month ago
Honestly, if you’re wanting to produce something as good as this, Three.js or other such things just aren’t particularly helpful. It is easier to just ignore all the libraries and do it all from scratch. Popular libraries are good at producing finished products in a particular shape. When you’re wanting to demonstrate the implementation steps and allow intricate fiddling and have everything polished like you want it, they’re generally somewhere between painful and hopeless.
You could still keep Three.js for bits like vector calculations, but it just doesn’t feel worth it, it’s easy enough to implement yourself—or copy and paste from some such library and modify as needed—and will be much lighter. And you build up the bits and pieces you need over time.
typeint
a month ago
What are some good sources to learn this kind of graphics programming work?
sbondaryev
a month ago
It really depends on your level - this kind of graphics work is usually learned over many years.
Some sources
> Math & motion: – The Nature of Code https://natureofcode.com/ – Coding Math https://www.youtube.com/user/codingmath
> Shaders / math-based rendering: – The Book of Shaders https://thebookofshaders.com/ – Inigo Quilez https://iquilezles.org/
> Interactive explanations: – Red Blob Games https://www.redblobgames.com/
You can also find some insight into his work process here: https://x.com/BCiechanowski/status/1387827101294686210?s=20
Most people doing this level of work built their own tools over time, learned a bit here and there, and kept refining things throughout their career.