Mᴀʀᴋ VᴀɴᴅᴇWᴇᴛᴛᴇʀɪɴɢ
He/Him. Formerly Senior Technical Director, Pixar Animation Studios. K6HX. Telescope Maker. Tinkerer. Woodworker. Programmer. Open source afficionado. Enthusiast for enthusism. Make stuff, and share your knowledge and expertise!
Made a loaf of banana bread this morning. That may be my biggest/only achievement today. Not feeling like anything else.
Cutting parts for my telescope project on my homemade CNC.
Saddened to hear of the passing of computer graphics luminary Loren Carpenter. I was lucky to have worked with Loren as part of the RenderMan team at Pixar, and benefitted enormously from his kindness and wisdom, especially in the early days. The respect and patience that he showed me in my junior days meant a lot to me.
Note to self: time to learn Kicad.
Grr. Didn't quite get my CNC zero'ed out properly, and bored six holes in the wrong place. Luckily, it's wood! Nothing some wood filler won't cure, since I am going to paint it anyway.
2.3 hours of exposure last night on M108, aka the Surfboard Galaxy. #astrophotography #seestar
Combining my experiments with #telescopemaking and #ai, I used Claude Code to help me make a small application that can output DXF patterns for all the major flat/cut from plywood items to make a basic Dobsonian telescope. It will automatically layout finger joints for my CNC, which is kind of a pain to do by hand with OnShape or other cad tools. I haven't tested it for real yet, but I will probably use it to make the rocker box for my 6" revival project.
More tinkering with a dataset of the Rosette Nebula that I got last week.
#astrophotography
Read today that the U.S. is ~ 2.5x as old as Mel Brooks. It is just barely less than 4x as old as me. Not sure what I am supposed to learn from this.
Years ago, started "milhouse", my conventional checker-playing engine that used α-β search. I did a brief excursion into making a similar program with Claude Code (α-β search, but with self play to learn the evaluation function implemented with neural nets). It was somewhat successful, but 16 days ago I decided to try Monte Carlo tree search, which I knew little about. Now it can beat Martin Fierz' "simplech" handily, a level of play not reached by me before. And still getting better.
Some more #onshape cad, the rough model for the next few bits of a Dobsonian telescope project I'm working on. No details yet, just mucking around with how it looks. Trying to use 1/2" ply rather than 3/4" ply, and will add some gussets to reinforce bits. #telescopemaking
Rhayes now has basic displacement shading working.
This morning I've been experimenting with the "hermes" agent a bit, aiming it at a local model that can be run on the hardware (modest, but not trivial either) that I have on my desk. I'm struck by the inefficiency of it: how I asked it to do a something simple (just a command or two in the shell, and easily achievable in less than 20 seconds of runtime) but that it's been chewing on for 10 minutes. Surely that can't be good, right?
Playing around with Mandelbrot sets.
The AI imposed RAM shortage is annoying. A 1GB Raspberry Pi 5 is just $45. One with 16GB is $205.
When I was working on the initial version of rhayes, the Claude code generated version of the REYES architecture, I had difficulty getting information for it in Markdown format that the AI could use. I have since discovered "docling", which is a python library that can handle all sorts of document conversion tasks. In a few minutes, I had Markdown version of the original paper, along with text even extracted from Fig. 3, which was pseudocode of the overall algorithm.
First test of displacement shaders on rhayes. Obviously broken near edges of grids and discontinuities, which is something that has to be handled carefully, not surprised it didn't sort this out properly. I think I remember how we did this back in the day, when I get more claude minutes, we'll see if I can guide it to the right solution.
I'm beginning to believe that while not all the problems with computing have to do with authentication, all the truly annoying ones do.
I think that the biggest mistake I made in trying to do a Reyes compliant RenderMan renderer using AI is that I didn't accurately convey how the various shading spaces work. To be fair, I started with just Part I of the spec, and most of this stuff arises in Part II, which has to do with the shading language. I suspect after my Claude minutes reset on Monday, it will still take me days to sort out the mess.
Yesterday I started to find the technical debt generated by Claude re: my RenderMan renderer rhayes. It simply botched the handling of variables passed to shaders in a way which was incredibly convoluted and patched together in a way that introduced some bugs, and I had to dig in the code to figure out what was going wrong. It also generated some very weak tests which actually didn't test what they said they were. Probably will exhaust my daily usage before its sorted out.
Goofing around with my simple polygon rasterizer generated with Gemini CLI. 3D model was generated by hitem3d from a single photo.
Nutty AI coding experiment of the day... Some 11 years ago I wrote some simple programs that could encode image files as audio for #hamradio SSTV but I never wrote the matching decoders. Today fired up gemini cli and asked it to write a more complete suite of both encoders and decoders. What's cool is I had it compile using emscripten, so you can encode and decode SSTV using that code, but running in the browser. https://mvandewettering.com/sstv-ref/ Never did that before.
I'm not sure the operation of the various coordinate transforms is working, but I can at least rotate the shader in object space. (Yes, I know the stars aren't pointy, the rounded one had an easier implicit equation).
Okay, my simple polygon renderer coded with Gemini CLI isn't perfect yet (still something wrong with color spaces) but it now implements shadows as well.
Noise is working. I didn't specify anything about it, it picked the more modern (2002?) version of perlin noise. Had to direct it to fix a code generation problem, but it's working now. (Rhayes is now totalling about 16K lines of code).
After years (decades?) of using RenderMan post its transition to raytracing, I'm reminded just how clumsy and annoying working with shadow maps can be.
A couple of little one page html/javascript apps I did today with a few minutes of AI work: a viewer for the Lorenz attractor https://mvandewettering.com/lorenz-javascript/ and a Mandelbrot set viewer https://mvandewettering.com/mandelbrot-javascript
Remembered to commit r5rs https://github.com/brainwagon/r5rs my implementation of the R5RS version of scheme, done with Claude Code in a couple of afternoons.
Stepping outside the limits of the RenderMan 3.1 spec with rhayes: adding support for inline parameter declarations, which makes for a slightly better quality of life.