No new vibe-coded apps this week. What I’ve done instead is gone back to some of my older projects and given them a degree of polish I wasn’t able to before when using low-cost AI like DeepSeek Flash. What a difference a frontier model makes!
I did a ton of work on RetroVista, tweaking sounds and improving the authenticity of its classic game console graphics. I also added incidental animations (astral events, animals walking by, planes/trains/watermobiles) to make each of the seven scene types more lively. It looks really great now, if I do say so myself. Most of all, I’m super jazzed about the fact that the City scene now generates jazzy musical themes.
While working on RetroVista, I discovered a way for web apps to play audio without having to unmute your iPhone, a change that also allows them to play in the background while your phone is locked — just like a real music player! That technique has now been added to DataDeck, which was designed as a music player to begin with. That app has also been given a tune-up under the hood, with loads of bug fixes and performance improvements.
Orchids, Once. also received attention: the same audio behavior as above, and a major upgrade to the plant rendering system. The original code had major bugs that led to the GPU not rendering some intended effects at all, such as leaf textures. Flowers used to be assembled from parts floating in mid-air, so you’d see gaps and clipping. Not anymore. Now each piece grows out of the last and moves out of the others’ way. The graphical fidelity is at an all-time high. As an ‘art project’, I had previously considered the experience complete and never expected to make any changes, but I’m now really pleased about being able to bring it closer to perfection. Is this the same illness that afflicted George Lucas when he added CGI rocks to A New Hope??
But maybe the biggest glow-up was given to Shelf Expression, the software that powers my Bookshelf page on this site. On the frontend, new shelves have been installed, animations have been refined, books show physical wear & tear, and you can place decorations to liven things up. On the backend, it’s almost entirely new. I won’t bore you with the details, but the original was little more than a tool that helped spit out some HTML code you then had to paste into a file in order to update the page. The new setup is like a mini CMS in its own right! You can log in and update the bookshelf from anywhere with just your phone. The ‘Share Studio’ that creates social media-ready images and collages to show off your favorite books is now a powerful app in its own right.
Books can be perfect, lightly worn (L), or well-loved (R)Social post images created in the Share Studio
The best part is it’s easier than ever for non-technical users to configure; it can even detect and install new updates from GitHub with a tap. Now it behaves more like a live service rather than an ad hoc webpage. I cleaned up the GitHub repository and the source code is now up for anyone to grab and set up bookshelf sites of their own in minutes. If they don’t want to run the full app on a server (Vercel and Netlify are supported), they can simply export a static site that’s ready to be hosted anywhere.
And finally, my first app Collagen got a Liquid Glass UI and an infusion of new collage-editing code from Shelf Expression’s Share Studio, making it more reliable and nicer to use than ever.
On the home front, I’ve had my sleep disturbed by an incessant dripping sound from inside our bedroom AC unit. I had a guy come by to fix it by unclogging the drainage pipe, but he somehow didn’t finish the job and the sound returned a few hours after he left. Isn’t that the worst? Now I have to wait till next week for him to try again.
We watched the latest season of Netflix’s The Diplomat, a show that I’d be happy to see continue indefinitely, along with Slow Horses. I think what I like about it is that something is always happening, and someone is always talking. The dialogue is good, and things move fast. That’s not to say I can’t appreciate slow-burn atmosphere, but too many prestige shows nowadays are just stretching a feature film’s worth of plot across eight hours by having characters walk slowly between locations, stare intensely at computer screens, and then realize things the audience figured out three episodes ago. I’m looking at you, Silo and Neagley.
I finished reading Electric Dreams, a collection of 10 short stories by Philip K. Dick that were adapted into a TV anthology series by Amazon Prime. Except it’s not on Amazon Prime in Singapore for some reason. The stories are prescient for having been written in the 1950s; many of their darkly humorous extrapolations still ring true today. In one Cold War story, people are urged to upgrade to the latest life-saving shelters each year, and the people who won’t or can’t afford to keep up are social pariahs. More notably, almost all involve a heavy serving of paranoid atmosphere — either fucked-up things are really happening to the protagonists, or maybe it’s all in the mind of someone having a psychotic break. That dissociated POV, earned through his own mental struggles, was maybe PKD’s real gift to the world.
I’ve heard before that people were able to buy electronics with their SG60/CDC vouchers (essentially our local government stimulus checks) by spending them at NTUC hypermarts, but I’d never been to one before this week’s visit to Vivocity. I’m pleased to share that I picked up two Nintendo Switch 2 games for free: Splatoon Raiders and Nintendo Switch Sports Resort. If you have vouchers expiring this December, it’s worth checking out; they’ve got household appliances and a small toy selection too.
We were at Vivocity to try the first Singapore outpost of the cheap and cheerful Japanese yakitori izakaya, Torikizoku. It was sadly not very good. The executional faults aren’t worth getting into but I’ll sum it up by saying it’s so important to hire people who can identify the factors that make something what it is, and tell you how to replicate or translate it. Singaporeans go to Japan probably more than any other country save for Malaysia, and if they’re coming to eat here, it’s to access an experience they already know. I’m not saying localization is always bad, but you don’t see Apple opening a new store and asking “Hey what if we doubled the prices here and ran it like a Turkish souk where everyone has to haggle? And played really loud dance music?”
Music video of the week: The Rolling Stones’ Mr. Charm starring Alexander Skarsgård, who’s looking more like his dad than ever (ameliorative).
Local haze levels continued to climb and reached a ‘Very Unhealthy’ state in the middle of the week. My haze app, SecondHand, continued to see active use and added about 10,000 visits. I’ve heard that some people at the National Environment Agency (NEA) are aware of it and like it, which warms the smoky, congested cockles of my heart. For the record, Sunday brought some relief, with PM2.5 falling to near normal in some parts of the country.
It’s frankly been like an echo of those COVID days — staying home with the windows shut; that feeling of hunkering down under attack. And just like with COVID, restaurants are experiencing difficulties, so says the Straits Times. I’ve taken to walking on the treadmill as often as I can, usually for an hour while watching some insubstantial drama program I normally wouldn’t sit still for. This week, that’s been NHK’s Eat, Sleep, then Wait for Happiness on Amazon Prime.
But the real time suck has been provided by a return to vibe coding after a three-month hiatus. This has been thanks to Hark, which fulfills the promise of OpenClaw but without requiring the nerdery and foolhardiness of letting an AI take over your own computer. Hark’s computer runs in the cloud, and it’s intelligent enough to manage its own files and applications and capabilities — dare I say it? — so much so that it’s like handling a remote employee over chat. It sends me updates and artifacts, I give it problem-solving suggestions and creative input, and it comes back with the work. I spent so much time earlier this year with the self-imposed challenge of trying to squeeze water out of the rocks that are low-cost Flash-style models, that I completely missed experiencing what the very best frontier models can do. In retrospect, that was a little dumb, but the upside is I’m filled with so much wonder right now.
I’ve mainly been working on the procedural art generator tool that I mentioned back in April. Then, I described it as a never-ending background project for me to dip in and out of, due to each ‘style’ being modular, which has made it easy to jump back in this week. Using modern technology, I overhauled the rendering engines and revisited every individual style, as well as the app’s own UI and foundations (images above). It’s hard to explain how much better it is now, how much closer it is to what I wanted. It even has freaking Apple-style Liquid Glass effects on the toolbar! In a web app! I don’t know if I’ll ever release it or just keep messing around forever making wallpapers for my own amusement.
But I do have something to release today, something that came out of building one of those styles. Similar to how making a maze artwork generator led to making a maze game (a maze, a maze, a maze)in the April post above, I was making a pixel art landscape engine for the wallpaper tool and realized it would make a very nice desktop toy — in the vein of my earlier Window Box project.
It’s called RetroVista! Leave it open in a spare window or second screen while you work, and its lush natural scenes and chiptune sounds might relax you, if you’re a millennial who grew up playing games that have somehow, seemingly overnight, become retro and vintage. You can read more about it in this separate post.
Speaking of old videogames, Street Fighter (2026) is out and we went to see it with Peishan and James. Watching every movie adaptation of games from my childhood, even if I know they’re going to be terrible, is a weak spot I probably share with many my age. One time, I went to see Street Fighter: The Legend of Chun-Li (2009) with Peishan, and followed that up with Snake Eyes: G.I. Joe Origins (2021), and now she thinks we have a bad movie watching tradition. But it’s not. It’s a specific ‘bad movies cashing in on nostalgia’ watching tradition.
To get in the mood for it, I fired up the Street Fighter 30th Anniversary Collection on Nintendo Switch the day before. I got my ass handed to me by the CPU in like, the second-round match of SF2 Turbo Edition. When did the game get so hard? When did a Dragon Uppercut become impossible to pull off when you need it?
The good news is that the new Street Fighter film understood the assignment. It’s aimed squarely at people who are now dealing with mortgages, perimenopause, reading glasses, and other mid-life crises. They’ve set it in the 90s, packed it with 90s chart-toppers like 4 Non Blondes’ What’s Up?, and exposition is handled with MTV-style video clips passed through faux-VHS filters. For two hours, it puts you in superposition between being a kid on Saturday morning and an adult watching their dream come true. The live action is broken up by anime sequences that are good enough they should be their own feature film. It’s flawed and stupid as hell, but I loved it. A very strong 3.5 stars.
Kim has fallen ill and is taking me down to Maybe-Covid town with her. Before it turns really bad, I figure I should bang out a short update. I eventually broke my Duolingo streak, my Finch streak, and some days I feel like ‘this might be the week I break my weeknote streak’, because it’s bound to happen someday. But when? Not today, at least. Let’s go:
On Thursday I managed to meet up with Brian for a couple of beers and a curry after running a minor errand in town. He’s finally moving on from our former employer, to an interesting insights role that should keep him both busy and amused, which is a minor miracle in this economy.
We also got out to dinner with a bunch of Kim’s friends on Friday before the illness took hold (who hired this dramatic tone and can we send him home?). The hosts had a Nintendo Switch with Overcooked loaded up for their kids. After watching her two children play with total focus, another mom who could really use some wine-alone-time said excitedly, “I think a Switch will be appearing in our home shortly!” I was perplexed that the child-distracting benefits of a videogame console had not previously occurred to her, and regretted not being more of a pain to my parents all those years I wanted a SNES or Mega Drive at home.
So here we are instead, spending adult money to chase a childhood feeling. I bought Assassin’s Creed: Shadows on the Switch 2 a couple of weeks ago because it was on sale, despite knowing that it would be technically more impressive and performant on the PS5. Well, I needn’t have bothered worrying about frame rates because the game itself is dogshit. It was during a mission where I was meant to kill a few people, and discovered a bug where one of them was loitering outside the challenge’s boundaries (literally beyond an invisible wall I could not cross), that I decided to write off the USD$35 I’d spent and delete this piece of Ubisoft garbage.
I finished reading Book 3 of Solvej Balle’s On The Calculation of Volume series, and I haven’t decided if I’ll continue — there is one more book out in English, and there are a total of seven planned. I thought the first book was fine, but these last two have leaned more boring and uninteresting. What kept me reading was an (unintended?) parallel with unemployment that I noticed: being stuck in a day that repeats endlessly is what a sabbatical or retirement feels like at first. Work is the engine that keeps your days moving whether you like it or not. Remove it, and you’re living outside the time everyone else shares. Tara, the protagonist, can’t rely on anyone to understand her experience or keep her company, so she fills her days with idle curiosity — studying history, watching the sky and her backyard, letting time slip by until she loses track of it.
[Spoilers follow] Perhaps I’ll read the next book just to confirm my suspicion that this story arc intentionally mirrors the different stages of a post-work journey. At the end of Book 2, Tara suddenly meets another trapped person, which kicks off a period of relief, elation, and connection in Book 3. And then they meet more trapped people, forming a sort of retiree community that tries to navigate their way through this. Some want to return to how things were before, which I suppose is a desire to reintegrate with society and regain relevance, while others don’t believe it’s possible anymore. Some want to simply find a way to live, and some feel a responsibility to use their unique position to improve the world. Given that Balle has lived as a sort of writer-recluse in her small Danish village while putting these books together over many years, I don’t think I’m far off the mark.
I want to recommend the app that I used to create this week’s featured image above: tone. I found it through the Japanese developer’s Twitter, which was legible because of how that platform now automatically translates tweets in other languages to English. It is actually a very useful feature that will nevertheless probably be proven at some point in the future to have caused even greater deterioration of society and mental health. Anyway, it changes photos in various ways to look like they were reproduced with vintage printing techniques, not through a simple filter, but a multi-stage process you can actually inspect. Not the first to attempt this, but a really nice implementation of the concept. It’s free, with an optional in-app purchase to unlock more colors.
A ton of new music dropped in the past couple of weeks but I’ve been listening to the Takehiro Honda Trio’s This Is Honda (Jazz), and Radiohead’s The King of Limbs, which I’ve somehow hitherto ignored. Oh Charli XCX’s new album Music, Fashion, Film has some great sounding moments (and some painfully shallow lyrics), and its second track, SS26, is a pop masterpiece. It also says something about the times we live in, and my general intelligence, that I wondered for a minute if the album’s cover featuring John Cale, Marc Jacobs, and Martin Scorsese was AI slop.