I built a film out of 167 family photos for my mom's birthday, with the rule of no generated content on screen. The rule held against generated images and broke everywhere else.
All of this was vibe-coded, so that was constant. What varied was how specific the target was.
The first build rearranged pixels from multiple photos into a single one. I did not understand the math, but I knew what to look for: how long the sort can run before motion stops reading as pixels, what edge detection has to preserve for a face to survive. When a render came back wrong, I could say how. It worked.
Every build after carried one requirement: better than the last one. A golden spiral, a Droste portal, a depth dive, high-dimensional solids with photos on their faces. Each aimed at beating the previous round rather than at a specific end goal. Four were built and discarded in the end.
An under-specified target still gets specified, and what specifies it is whatever is doing the generating. My rule covered pixels and visuals, cases I could physically see. The decisions above the pixels (what the shot is, why this construction and not another) went unnoticed.
I did not know what a Droste effect was when I asked for one, so I was guessing at what the output should be. It failed because Escher's construction needs the whole plane to be self-similar, and a photo isn't. I realized after multiple renders rather than an afternoon of research.
The tasks were different, so direction isn't cleanly separated from ease. Domain expertise I can rule out, as I had none in any rounds.
What perplexes me is that I could never localize a failure. I could see that a render doesn't look right, but not whether the construction or the parameters were wrong. I hypothesize that specific domain knowledge into 2D and 3D geometries and transformations would allow me to better localize these issues, and possibly lead to more satisfying animations.
Writeup, with video: https://ameya-bit.github.io/notes/better-than-the-last-one/
Code: https://github.com/Ameya-bit/photo-constellation
Not to be mean, but the above reads very LLM-like to me. Even in the case that my impression is wrong, I find it very difficult to understand what point you're really trying to get across. E.g. this part:
I did not understand the math, but I knew what to look for: how long the sort can run before motion stops reading as pixels, what edge detection has to preserve for a face to survive. When a render came back wrong, I could say how. It worked.
I have no idea what this means. This is the first time you mention "sorting". What was sorted? And why? What does it mean that "motion stops reading as pixels"? What edge detection? What does it mean for a render to "come back wrong"? What "worked"? So many questions. The same is true for most other sentences, fwiw. Like "What varied was how specific the target was". What target? Why did it vary? But I could really quote almost any sentence here.
I'd appreciate if you could write a human paragraph on what you want the reader to take away from all this. My best guess is that you vibe-coded a thing that is cool and you learned something in the process and want to share your insights. But I don't even understand if you considered this project a success or not. Early you say "It worked.", later you regret that you didn't end up with more satisfying animations. How does "When a render came back wrong, I could say how." relate to "What perplexes me is that I could never localize a failure."? These seem contradictory. Oh well. :D
Thanks for the feedback.
I was trying to write this more like an experiment rather than an experience I had, as I want to enter some research-driven work in the Fall. I thought something simple might be good practice. I did use AI to condense the post and push it towards that academic tone, which is probably why it reads LLM-like. I also realize that I didn't setup the underlying story.
There were 4 different builds, the first that worked, and the other 3 that didn't.
I had around 167 photos of my family, and I wanted to showcase them in a grand way. So my first idea was to make something that took all 167 photos, and rearranged the pixels of each photo into a singular photo of my mom. So those pixels are what is being sorted, and into a way that looks like the final picture. What I realized is that if the pixel movement is too fast, you can't see them and so it doesn't look like a transformation. And the edge of the face in the end photo has to be preserved, or else the face isn't visible. So all of that is math surrounding the pixels, that I didn't know, but you can tell they are wrong based on how the end product looks. So this first build succeeded because I had a vision for the end.
Now I continued with 3 other builds, all trying to just "be better" than the first. There was no direction. So in the other 3 builds, I didn't have an end goal to achieve. And with no direction, the gaps have to be filled in by AI. It threw in the Droste effect, a depth dive, and high dimensional solids, tuned each however it felt like. But none of it really satisfied me. I couldn't tell why because there was no end goal I wanted.
Since all 4 builds were vibecoded and I didn't have previous knowledge about image transformations, the only thing different was whether I had direction or not, so I tried to frame an experiment around this idea. It's not really a novel idea, direction is better than no direction, but I wanted more experience in academic writing and thought the story had the elements for it (the first build was the control, and the variable would be direction). Granted, the tasks were different in all 4 builds so I can't really attribute this to direction.
So on the contradiction, I meant that I could tell how a build was wrong visually and explain that, but not whether the underlying code or math was wrong. I didn't have that domain knowledge to know. What I wanted to share with the reader was this experience in vibecoding, how it seemed to isolate direction and had a result I could talk about. I considered the first build a success, but felt that the other 3 left something to be desired. I also spent much longer on the other 3. I realize I didn't really talk about the result in the post though.
But thank you so much for taking the time to read this. I appreciate advice on how to improve my academic writing. Reflecting back, I probably should have added an introduction, setup a couple terms and concepts, and then carried them through the rest of the paper. I'll probably leave this post here to look back on as my writing gets better.