Back at it
Tile-based multi-pass Metal raytracer

Operating well outside of my level of expertise here with Codex, but it's doing a pretty credible job at a lot of complex Metal rendering code I would never be able to wrap my head around

(Ignore the UV issues)

'We have Valence at home!'
You can just do stuff, now. It's wild.
I'm not yet sure what the end goal is here, but I'm making a lot of progress regardless
Y'all know I'm using UIKit/Catalyst, right?

I started with a blank project template 5 hours ago. Now I've got a little 3D scene graph editor with gizmos, wireframe and shaded view modes, texturing, drag and drop OBJ file importing, and tile-based raytraced rendering, that runs on Mac and iPad.

Thanks Codex!

Some more glamour shots of this 3D app in the iPad Simulator
OBJ drag and drop
Multi-select and grouping
6720 loc

You know what I really could use at WWDC?

Teach a generative model to build high-quality vector SF Symbols so we can make custom ones, like say a full set for 3D modeling suites or PencilKit drawing apps, on demand πŸ‘€

…asking for a friend…

@stern

Upgraded my raytraced renderer with bounce lighting and true reflections. Now it looks pretty legit!
The floor also needed some bounce lighting

'Could somebody with no programming experience recreate Photoshop with an LLM?'

I have absolutely zero Metal and near-zero 3D modeling experience. I know the basics of how to use a scene editor, and the names of rendering terms.

And I effectively vibecoded all of this in less than half a day with Codex 5.3 Medium, based on screenshots of a cool-looking app I've never used (Valence3D) and just a general sense of what a 3D app should do

Raytracing uses every last ounce of my poor M1 Mac mini's GPU. It has never seen such a workout
Since I am doing this on the GPU, not CPU, finding a way to render complex meshes without blowing the budget is a headache. There's a hard cap on how much work you can do before the Metal driver crashes
I think I should probably add a denoiser to this…
It’s a warm, sunny day, so I moved outside to sit with the dog. My iPad has a much faster GPU anyway, so rendering works great here side by side with my Mac over VNC. And it’s a nanotexture model, so working in direct sunlight is effectively the same as working indoors 😁
@stroughtonsmith sunny enough to sit outside?! It's 2.8C here. πŸ₯Ά
@bigzaphod I’ve just had two months of non-stop rain, let me enjoy it πŸ˜‚

@bigzaphod @stroughtonsmith We’re back to rain today here, but we just ended a beautiful sunny week β€” got up to 17Β°C yesterday. Still frosty some mornings though.

It’s been an exceptionally mild winter overall for us: we never even bothered to cover the vents into the crawlspace, or drain and cover the outside water taps for the first time I can remember.

Which sounds nice, but it’s going to be rough come summer β€” there’s not nearly enough snowpack, which we kinda depend on.

Added some targeted calls to the hardware raytracing APIs, and a toggle switch so I can flip between non-accelerated RT and accelerated RT. There are plenty of bottlenecks in my renderer to stop it taking /full/ advantage of acceleration, but holy heck it’s much faster regardless. This is on the M5 iPad Pro

Turns out the M1 supports enough of the hardware accelerated raytracing APIs that I get a massive speedup here, too?

Trying to parse Apple's Metal feature support tables is hurting my brain, so I'll just accept it and move on

Mandatory texture option
I can almost render this dragon mesh now before the GPU gives up πŸ‰
Submeshes and MTL texture loading
We're doing water now.
I think I'm just making Bryce now? That's a thing
Procedural water to the horizon, sky, island generation
Not me offloading raytracing workloads to my iPad because it's so much faster than my Mac…
I spent untold hours in Bryce3D as a kid making silly scenes just like this. It did this stuff with machines a thousand times less powerful than my Mac mini. Certainly puts things into perspective…
It's real nice having a complex app like this on iPad, that's for sure. This is by far the most complex and impressive thing I've vibecoded with Codex 5.3. I haven't seen or touched a single line of code, I didn't have a detailed plan to work from β€” this isn't at all like the structured ports I detailed previously
I thought my water should have some translucency and falloff, so I can put things underneath it
Procedural clouds seemed like a good idea

Recap: I vibecoded (code unseen, no plan) a 3D editor/renderer that has a scene graph, editing controls, primitives and gizmos, materials, procedural terrain and water, and hardware-accelerated Metal raytracing with soft shadows, clouds and bounce lighting, that runs on Mac and iPad.

Tool: Codex 5.3 Medium
Time: About a day's worth of work has gone into it

@stroughtonsmith is this ever coming to TestFlight? It's making me miss Bryce so much

Sunsets next?

@stroughtonsmith you are slowly building the Trapper Keeper I had in the 90s. πŸ’—
@stroughtonsmith Looks like the excitement made you stay up all night …

@stroughtonsmith is this going to be broadly available? Any chance for an iPhone version?

Seeing these updates has made me incredibly nostalgic for iTracer, which was a basic 3D rendering app for the original iPhone, but also the first app that made me think, β€œwoah, this is literally just a small computer.”

@stroughtonsmith this screenshot looks so beautiful and pleasing to the eye
@stroughtonsmith Do you have experience with 3D applications? Or are you just vibe coding your way through this playing around? If it's the latter, i'm impressed. :)
@MacObservatory using them, yes. Making them? Absolutely not
@stroughtonsmith One area that 3D software is only touching the edges of is using primitives to block out the scene and creating adhered AI renders using reference images. Currently a multi step process or a kludgy Blender add-on but so useful.
@stroughtonsmith loved loved loved Bryce and Strata. was so fortunate to have access to Power Macs in summer school. @ljharb
@stroughtonsmith pretty sure Bryce looked better too, even ifnit did take hours to make an image
@stroughtonsmith That sounds like a handy handoff feature for those with older Macs but newer iPad/iPhone.
@stroughtonsmith Watching the progress of this app over the past day has been incredible.
@edmn I'm just as much along for the ride as everybody else
@stroughtonsmith love the Amiga reference :)
@stroughtonsmith funny thing is. They say , our jobs will be over with vibe-coding. But I don't see everyone creating apps now. Just because there are good tools, doesn't make everyone a carpenter..
@stroughtonsmith Quick reminder, you’ve been working on this app for months, right? Months? For some reason I was under the impression that you’ve been working on this for hours, but that can’t be right.
@TheEjj if by months you mean 'an evening'. I spent most of today rendering with it and not doing any actual development πŸ˜…
@stroughtonsmith I don't think hardware raytracing was added until M3 β€” that M1 GPU must be cooking!
@edmn yeah it's not using hardware-accelerated raytracing. I don't know enough about the feature to know whether that would even be useful in multi-minute raytracing of static images rather than optimizing things for realtime
@stroughtonsmith Sounds like you need to buy an M4 Mac mini!

@stroughtonsmith Did you build the path tracer yourself or is that a system library?

And what exactly will this tool do? I assume you're not building a full modelling tool.

@k0bin Codex built it from scratch. I don't know what it will do yet, I'm just experimenting
@stroughtonsmith add in some radiosity to really test it πŸ˜€
@fatlazycat it's already doing bounce lighting
@stroughtonsmith @stern what we need is a blender-light
@takeitev @stern Apple hired the Valence dev for its design team! Valence should just be part of Creator Studio πŸ˜…
@stroughtonsmith @stern that would be nice. But given how bad Creator Studio is, with its upsell nags - I hope it won't be. But who knows. World needs something like blender - free and good, but "light" . I know how to use blender but I still have to look up tutorials from time to time to do basic things. It has soooo many features!