DEV Community

Cover image for Retro :: Spider-Paint
Peter Vivo
Peter Vivo Subscriber

Posted on

Retro :: Spider-Paint

The weeklyretro tag doesn’t come close to covering it. This is really another trip through time into the dark corners of my mind, so I’ll try to keep it short. I’ve breathed new life into my very first GitHub repo:

GitHub logo Pengeszikra / Spider-Paint

lightweight 3D test scene builder program based on Three.js / webGL with a little Big Bum animation

Spider Paint

Spider Paint 0.026 as it starts: the key help in the corner, the FPS meter, random objects in space

digital spider web: objects scattered in space, cones on their surfaces, lines between them

face of spider: the head model covered with cones

The 2015 version as it starts, with its key help and FPS meter; then the digital spider web and the face of spider, as it drew them.

How these pictures came back. The 2015 README showed two pictures: the digital spider web, which gave the program its name, and the face of spider. Both were hosted on Google (old Picasa / Google+ links), and both links now answer 403 Forbidden: the pictures did not break, their hosting is gone. The Wayback Machine was tried next. It holds no capture of the face of spider, and for the spider web the archive was offline at the time of the search.

So the pictures were made again, by the program that made them the first time. The unchanged 2015 code (the 2015-sept-11 branch, with Three.js r48 from 2012) was served locally and opened in today's headless Chrome, with a…

It was my attempt to get to know 3D back in 2015. I simply wanted to display 3D objects in space, then add new objects to their surfaces. Back then, I built it with Three.js. For debugging, I also made it possible to connect the objects with lines, so after a while, the scene started looking like a strange three-dimensional spiderweb.

I could also fire those little pyramids pretty rapidly, which already gave it a rather surreal feel. But then it met the usual fate of hobby repos and fell into its Sleeping Beauty slumber… until now.

Tooling

Now that the possibilities have multiplied, I can revisit my old ideas one by one. That’s how TS+|> and HEXAW, a programming language that expresses WASM in a different form, came to life. Basic tools—for a programmer, anyway.

But here’s the twist: validating a programming language is hard. I thought that if I wrote a program with them, I’d find out along the way whether they actually worked properly. So that’s exactly what I did.

Eyes

Over the past two months, AI has made a qualitative leap, as I described in my Eye of the Beholder article. But the tools now launching an attack of the clones on the entire games industry use Blender and other 3D modeling programs connected through MCP, allowing LLMs to express themselves visually.

I thought I’d simplify that process and started developing a 3D engine in a pro-retro-pre-beta state. It can connect to an LLM through MCP, and since it also has SVG output—though that’s slower—it’s perfectly suited to giving the LLM visual feedback without installing a big 3D application. The LLM can even generate models directly inside the program. That’s how the bridge in it was made.

3draft npm module

Test done

In any case, both programming languages performed well. HEXAW made the kernel 13 times faster than the previous TS code. This approach also raised an interesting question:

Comment on Crows, Moths, and Makefiles: How 300 Megabytes of Crow DNA Explains Why a 20-Kilobyte Scar File Outsmarts a Terabyte LLM

I think the second number need to be a bit less:

A New Caledonian crow's entire genome has roughly 1.2 billion base pairs (~300 MB of raw 2-bit data—less than a single CD-ROM, and only a tiny regulatory fraction of that 300 MB specifies brain wiring).

That’s a very interesting and sharp conclusion. What surprised me was when, while developing a 3D engine, I asked the LLM to write the engine’s kernel in HEXAW, the programming language I created. And it actually did it successfully, even though HEXAW is just a single npm package and a repo, and practically nobody uses it yet. So the LLM (Claude) surely couldn’t have had any memories of it.

Spider-Paint

Since the app accompanying 3Draft was built on the same principles as Spider-Paint, I separated it from the engine and put it into the old repo too. You can try it below, but this is also in the pro-retro-pre-beta phase, so don’t expect a full-fledged 3D editor. Or rather, it’s a first-person 3D editor.

https://spider-paint.vercel.app/

— The Vibe Archeologist

Top comments (0)