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.
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
hacky_engineer•46m ago
shivang2607•11m ago