I've got 40k+ photos on my iphone, and wanted a better way to interact with them. The basic idea I had was to virtually stitch all the photos together into a gigapixel image, and navigate that image with pinch and zoom. On import, the app hierarchically groups photos based on date and similarity. The user can go back and edit the groups, change the layout, and adjust the size of photos if they choose.
The interesting I noticed is that in the process of curating and organizing my photos, I stumble across memories and moments that I had completely forgot.
Development Challenge: The app does two interesting things underneath the hood... First, given an arbitrary number of thumbnails with different aspect ratios, it finds the best sized rectangle that completely fits all the photos. This allows me to recursively stitch groups together and always output a rectangular thumbnail for the group. Second, the pinch/zoom UI uses these nested thumbnails directly without slicing/dicing to fixed sized tiles.
My first idea is to require the user to have more than one disk for the system needs and the system should know all of the rest data devices user owns. My second idea is to treat different files as having different priority which impose multiple copies. My third idea is to make the software accessible, and the last idea is to make encrypting of all the devices easy and with no ties to any commertial entities. I would like to have a discussion about how to not lose anything digital.
Probably the most interesting thing about it at the moment is the editor. The world, and most things in it, are represented as collections of SDFs. More accurately, they're density fields, but, potato-tomato. The world generator and editor operate almost entirely on the GPU. I've been writing a graph compiler similar in spirit to compilers that execute LLMs, with some key differences. The SDF 'program' gets jitted into a kind of bytecode and fed through an interpreter in the world gen shader. This way, the world gen and edits can be applied deterministically using one big fused program, and transferred back to CPU land using the async PCIe hardware. I get something on the order of ~99% ALU residency, 95% L2 hit rate and 20-40% vram bandwidth usage.
Compared to doing world gen on the CPU, it's so fast it feels like magic. It's taken me the better part of two years to get this working well.
One neat thing about representing the world as SDFs is they've been thoroughly researched and documented by a guy named Inigo Quilez, and they have a lot of nice mathematical properties. For example, you can do a smooth union of arbitrary SDFs to get nice rounded contours where shapes join.
I'll do some shameless self-promotion and leave some links here for anyone interested in looking at the engine, language code, or some pretty pictures.
I just started using AI a few months ago. My smoke-test was "can it write a simple memory allocator". Until recently, every time I tried to get an AI to write an arena or simple buddy-style heap allocator, they just vomited all over themselves. To my surprise, the last time I tried, the AI absolutely crushed it; it unearthed tricks I didn't even know about in one shot. Since then, I've been using AIs to do the boring, rote work that effectively just boils down to me typing in something that's in my head. For that, they're great. I typically sketch out the thing I want it to make, then tell it to fill in the blanks. Sometimes they still go off the rails, but all in all it's a useful tool.
Where I've found they still struggle is making any architectural decisions, or where performance matters.. even a little bit. They often make super braindead decisions when it comes to performance for no discernable reason. They'll course correct when you tell them to, but I've had to keep a close eye on the output and reign it in frequently. Asking an AI to design a system from the API level hasn't ever returned a good result for me.. I always do that work.
All in all, I feel like using AI will probably make me a better programmer in the long run, contrary to popular belief. They accelerate the boring stuff I already know how to do, which leaves me with more time to work on the edge of my skill level where I grow as an engineer. Guess we'll see in 5 years.
Client posts request and masters respond with their offers.
What you think about that guys?
Right now I’m mainly validating whether people would actually want something like this. If there’s enough interest, I’ll run a small closed beta for Android.
Join the waitlist for beta access: https://forms.gle/XWXmK8HUSmAtfms29
...according to my own benchmarks (yeah, I know how that sounds).
Next, I'm planning to submit it to independent third party benchmarks, hoping to find out whether my results are accurate... or not :)
I've also just finished a CSS framework: https://iriscss.com/
Now I'm working on a new backend programming language that runs on the Erlang BEAM, along with a few web applications built using this tech stack.
hacky_engineer•1h ago
shivang2607•28m ago