Your brain keeps far more than you know. Not just the big moments, but patterns you hardly notice, swirling in your subconscious until they surface one day: a doodle in a long meeting, a painting you love without being able to say why, or an idea in the shower.
This is a small machine that makes art that way. Give it pictures. It digests their lines, colors, and shapes, and moments later (an age, in silicon time) dreams up new, abstract compositions from them. It keeps the contours and the flat patches of color, and forgets the texture, the shading, and what the picture was actually of.
This idea has been swirling around my brain for a while. In the summer of 2022 I drew a series of 39 artworks by hand called Subconscious Heirlooms, made up of shapes and forms that I may have been remembering, or making up.
My first attempt at software meant to replicate this process, which I put up in July, was a rough proof of concept. It sort of traced photos, then threw the pieces at a canvas and crossed its fingers. The new version you see here is much farther along, built around ten ways to compose with more aesthetic structure.
We’ve tried to have machines make art for a long time. The artist Vera Molnár was among the first, plotting geometric abstractions in the 1960s, and painter Harold Cohen spent decades on AARON, a program he taught to draw with rules. They turned formulas into forms, whereas this one runs on images and forgetfulness.
Step 1: Sample
Load a few pictures, or start with the Mona Lisa, The Great Wave and La Grande Jatte. Tap or brush the lines and shapes it gets to keep.
Step 2: Assemble
Pick a rule, from a tidy Grid to exquisite-corpse figures, and tap for new variations until you see something you like. Change the line, color and ground as you go, then export it.
One rule, Faulty, works like a misfiring brain. It scatters samples randomly, then starts seeing patterns in the chaos. Pieces from the same painting that happen to fall in a line get linked up, and clusters get a pale wash behind them. Where other rules start with a structure, this one imagines structure around freeform pieces.
Among color options there’s Riso, which prints with a few real risograph inks, a little out of register. It amplifies the physical effects of the copying and reprinting at the heart of this concept.
Swapsies!
Redraw one picture using only fragments of another. The Mona Lisa, made entirely out of bits of The Great Wave.
Is each result as good as the pictures it came from? Obviously not. Did it come from them? In a manner of speaking.
If the human brain is a supercomputer, then this program isn’t even an abacus. It might be a few rocks in a circle in the sand, there to make you wonder where our art comes from.
Kim was away all week, and I managed to be quite productive on my own. Yes, it’s going to be another big vibe coding update — maybe the last one for a while because my 10x access to Hark Pro ends in a few days.
To recap for those who haven’t been around: many of the apps I’d made earlier this year were exercises in AI frugality: challenges to see how much I could get done with low-cost Flash models. The corollary of that is that they often didn’t reach the heights I really wanted, and were more like minimum viable products (MVPs). Since last week, I’ve been giving some of these older ones a glow-up.
Easier, better, faster, stronger
The first project to get a second look this week was Crumbs, my personal location logging tool. It had actually stopped working because the Carto map API stopped being free for public access without a key. That’s now been resolved, and I updated it to v2.0 with some nice improvements, like a new UI. Its journaling feature is now where I’d originally wanted it to be: it can output a nicely formatted PDF detailing your pinned entries, chronicling a trip, for example.
Chinese Era, which mashes up ancient Chinese art and poetry at random, had also fallen victim to a deprecated API, this time from The Met. I took that opportunity to completely rebuild the app from the ground up, but at first glance you’d hardly know. As I asked in the changelog, “What’s the Chinese equivalent of the Ship of Theseus?” The experience is the same as it ever was, but the Art Institute of Chicago now joins the lineup of museums, bringing the collection to more than 2,200 paintings, paired with a cleaned-up set of nearly 700 poems. The poem now finds the calmest part of each painting to sit in, and its ink adapts to stay legible. You can swipe back to pairings you’ve passed, the controls fade away when you’re just looking, and every artwork links to its museum page if you want to learn more. Underneath it all, the app is more stable and much faster. Well worth doing.
Shelf Expression, my baby CMS for creating bookshelf microsites that you can host yourself, got Goodreads imports to help users get started, a bookshelf style modeled on the IKEA Billy, and some new starter decorations. I’ve spent a lot of time on this remodel now, and I think it’s finished.
Hasta la RetroVista
While looking through the catalog of apps at this point, I wondered, what next? My eyes landed on Window Box, which one might call a first attempt at the same idea behind RetroVista — dynamic scenery and music that you can leave on your second monitor as a companion while you work. Why would I update that now that RetroVista does a better job of the moving scene than Window Box did?
Window Box
Wait a minute… why not bring Window Box to RetroVista? Imagine if you could hit a button and the window would slam shut, and a planter box of flowers pops up to turn your view into one from inside an apartment in RetroVista? Or a log cabin? Or an Arctic research station? Or a spaceship? Each different scene would have to have its own breeds of flowers, unique to the locale, and the window glass would have to dull the exterior sounds. And while we’re at it, why not add the city of Tokyo and a Game Boy Advance mode too? So after two days of work, that became v2.0.
RetroVista v2.0
Proud of having shipped all that, I was relaxing in the glow of self-satisfaction when Evan, an avid RetroVista user, pinged me to say, “If I may, I’d love to see a train scene”, and goddamn it, he was right. That was an idea too good to sleep on. This would turn out to be the biggest, trickiest update yet.
Making v3 of RetroVista would involve overhauling each of the existing scenes, which would become scrolling landscapes viewed through the train’s windows. They’d need more details, and to be separated into different foreground/background layers for parallax effects. Then those new details would need porting back into the original worlds.
I added a Countryside scene exclusive to Express mode, as the train is called, plus unique station platforms for each world, complete with benches and vending machines and sleeping cats and birds eating breadcrumbs (again, different bird species for each locale). All the graphics modes needed updating to deal with the motion. Oh, and the Window Box mode added in v2 wouldn’t work here — so instead you get to step back from the window, and enjoy a dining car scene with different meals served depending on the time of day. Wait, there’s more: I added a Tap mode where you can touch various things in each scene and trigger dozens of surprise events.
You can just do things
I believe by this point it was Friday night. It got me reflecting how, back when I worked in a digital agency, if RetroVista were a client project that we had to design, have meetings and reviews about, and then develop and test and launch — the scope of this web app would have easily consumed over a month of several employees’ time, and quite experienced ones at that. The cost would have gone into six-figure territory, markups and all.
The idea that someone like me with little coding experience could direct the production of this, from an iPhone and iPad, in less than two weeks amid other projects and hobbies and going out to meet friends for beer, is simply stunning. Of course this is only one aspect of the services that creative digital marketing agencies offer, but I don’t know how they’re holding on and justifying the revenue they surely need.
But that’s not even all I did.
Return to the Island
The final app in the back-catalog that I decided to revisit was Island Solitaire, my take on an abandonware PC game called High Seas Solitaire that I have fond memories of. It was made with DeepSeek v4 Flash, which had a shaky grasp of Solitaire variations and generating card layouts. I struggled with making it serviceable, and in all honesty rarely played it myself because I knew how badly it paled in comparison to the original game I so enjoyed.
Well, it was time to put that right. The only solution was to build Island Solitaire 2, a wholly new game on new foundations. The core gameplay of matching pairs and cards adding up to 14 is the same, but the logic and tableau designs have been simplified and refined. Where IS1 used more cards, here only one deck is ever used: 40 or so cards on the table, the rest in a draw pile. Every game is now guaranteed to be solvable and not left up to luck. The neater layouts work well on screens of any size.
Taking it beyond just rounds of solitaire, there’s a progression mechanic — your wins develop the beachfront area with more elements, and unlock randomly occurring mini-games that help you win shells (a currency). The shells let you pay your way out of tight spots, such as undoing a bad move.
You can learn more in a separate post, but at the risk of using an AI-like construction, this isn’t just the game I wanted to make when I attempted the first Island Solitaire back in June — it’s an even better one. Play it at solitaire.sangsara.net.
Hark the doomsday angels sing
It bears repeating that Hark Pro has been very impressive, to the point where I’d consider a monthly subscription once I devote a little more time to figuring out what else it can do for me outside of vibe coding and timely updates on local arts events and new music releases.
It’s my first experience using an AI where I’ve not hit a wall of frustration. It almost always understands exactly what I want, and hasn’t forgotten what we’ve been doing — which I never experienced with paid Gemini, Claude, and ChatGPT (albeit earlier in the year, and lots may have changed since). I think Apple should buy them. This is the Beats Music acquisition for the mid-2020s. Hark can bring agentic capabilities to Siri AI across all their OSes, and be perfectly placed to cockblock Meta’s Muse.
That’s right, Meta launched their Muse assistant here in Singapore this week. It’s reportedly been super popular in the US, but who knows if long-term engagement will hold up. I decided to try it out, ‘keep your enemies close’ and all that. To prevent myself from being lulled into a false sense of security by its cute yeti mascot, I asked it to change its avatar to Mark Zuckerberg in a yeti costume, which it happily did. Now I won’t forget who I’m really talking to.
I asked it to help me find the best price for a camera and a soundbar, and it opened its own browser window (which I could watch in real time) and started doing research on Harvey Norman’s website, Lazada, Shopee, and so on. Assuming one can trust its thoroughness and accuracy, that’s a time-consuming task that many people might be happy to delegate. It goes without saying that this lets Meta know a whole lot about what you’re interested in and could be advertised to about.
After using it for a while, I proposed that I moderate a debate between it and Hark on which one of them would be the better assistant to me, pasting responses back and forth between them. Hark countered Muse’s opening by saying, ‘Brandon doesn’t trust Meta, so why would he use you?’, to which Muse retorted, ‘Sure he does, he trusted me to find out where the Fujifilm X-half camera was cheapest, and told me he wouldn’t pay more than S$600 for it. I’m also keeping watch for new curry restaurants, and every day at 9pm I update him on new events, and and and…’ (it went on to give lots of details).
Hark shot back, “Look at what you did to prove (it), you named his code project, the camera he’s hunting, the price he’d pay, the shops you watch, and the avatars he picked. You told all of it to another company’s AI. My last reply named no specifics, on purpose. […] A helper that turns his life into debate ammunition the first time it’s challenged hasn’t earned the wider boundaries yet.”
What a mic drop. Muse could only respond, “That was my mistake. I withdraw the defense, not just the point.”
What did it cost, Thanos? Oh, nothing!?
Where does this lead, anyway? Muse is offering this agentic capability to regular users for no money down, it’s a free tier and additional tokens cost extra. OpenAI’s comparable offering, Dots, is only on paid plans starting at $100/mo. Claude’s Duet (a US-only research preview) is also only for paying customers. Hark Pro and to some extent, Instinct, are the other ones with free access, and I’m under no illusions that they will get meaningful traction the way Muse, with Meta’s formidable advertising complex behind it, can. So it’s Muse that most people will experience, and a world where Meta gets even more personal information about more people is not a pleasant scenario. It’s a drum I’ve banged on before.
As nice as it is to imagine that sanity will prevail and that we’ll take a measured approach to rolling out such disruptive tools, and recognize that doing otherwise exploits the average consumer’s vulnerabilities, I don’t think that daydream is worth indulging any longer.
That same sentiment came up twice this week in my media diet. I was watching Season 2 of Dark Matter on Apple TV and Episode 3 touched on how humans can’t be stopped, which means we’ll get “Everything beautiful, everything terrible” (which is also the title of the episode). Then, while reading Ray Nayler’s The Mountain in the Sea, the head of an omnipresent Weyland-Yutani sort of global corporation was quoted as saying, “The great and terrible thing about humankind is simply this: we will always do what we are capable of.” About this, I have no doubts.
Island Solitaire 2 is the all-new sequel to a card game that at least three people have played more than once. This time it’s been taken to a whole new level. It’s easy to pick up when you have a few minutes, but the addictive yet chill design also makes it a cozy companion late into the evening.
How do you play? Clear the table by pairing cards that match, or that add up to 14. That’s it! Then deal the next round, and the next. How many can you clear before your shells run out?
Features:
All-new graphics put you on a peaceful island that grows with your win streak. When the seas turn rough, the cards get trickier.
Improved tableau designs simplify the Island Solitaire formula, making games faster and fairer.
Every hand can be won. And if you play yourself into a corner, you can get help for a few shells.
Earn shells! They’re the currency of the island, didn’t you know?
This game’s got game. At least 3, to be exact. Beat the minigames that pop up from time to time and get more shells to keep you going.
Messages in bottles. Pick them up and join the global conversation!
(Just kidding, there’s no online communication network in Island Solitaire 2.)
Add it to your phone’s Home Screen and it’ll install itself for offline play. Long-haul flights go by just like that!
Play Island Solitaire 2 at solitaire.sangsara.net. The original is still in there too, for old times’ sake.
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.
My previous app Window Box was designed to be a second screen companion, showing views of the real world while you work. RetroVista brings you to more perfect places: the kind of pixel-art landscapes you might have grown up with, fully animated and sounding like a lost cartridge from 1989.
Hit “Start”, watch the console boot up, and find yourself down by the coast, or in the mountains, or a desert, a forest, the arctic, a city, or an alien planet. Each scene is procedurally generated, so no two are alike. Waves crash, clouds drift, birds flock, and trees sway. You can even enable Live Time and Weather and it’ll match the conditions where you are.
Alongside the vintage graphics, the sound is authentic too. Each console’s audio chip is synthesized in software, so pick the NES and you get its bright pulse waves, the Game Boy and its thin, warm beeps, or the Super Nintendo and its lush instruments. The Master System, Commodore 64, PICO-8, and a 1-bit mode are in there too.
Scenes produce rain, wind, surf, and thunder sound effects along with gentle, procedurally generated music that’s never the same twice. The tunes weave in and out of silence, slowly evolving, so you can leave them playing for hours.
Completing the experience are a realistic CRT filter, a handy clock, and a shuffle mode that brings you a new world every so often. Add it to your phone’s Home Screen as a progressive web app and it’ll even work offline.
Made for your second screen, and your inner child.
NEW in v3.0!
RetroVista Express: Hop on a train and tour the world in Orient Express style. This new mode takes you through the countryside and special versions of all previous scenes with parallax scrolling and a special dining car mode (in place of opening the window).
Tap mode: Activate this in all other worlds and interact with the scenery and inhabitants! You can even knock thrice on the window to call your special friend.
An absolute avalanche of other improvements and expansions on existing functionality. Oh, and a new logo and start screen.
NEW in v2.0!
RetroVista pays homage to Window Box by ripping it off — you can now shut the window and appreciate the local flora of each scene. Outdoor sounds get muffled, the rain stays out and runs down the glass, all that good stuff is here. “W” acts as the shortcut key.
The Game Boy Advance joins its older siblings, with a new backlit LCD filter effect too.
Tokyo has been added as a new city, with loads of detail. Our previous City scene has been renamed New York, and looks more the part with smokestacks and water towers.
Plus: occasional gusts of wind blow debris around in all scenes, many smaller improvements, and a very special surprise for those who love curling up by the window.
Changelog:
3.0.0 – Express train and Tap mode. The biggest update yet. Details in the post above.
2.1.0 – Tokyo: Trees now line the streets and occasionally bloom as cherry blossoms.
2.0.5–8 – Tokyo: atmospheric sounds, new event animations, fix for window audio bleed.
2.0.1–4 – Added window frames for Forest/Mountains and Arctic, tweaks to sfx.
2.0.0 – Window Box, Tokyo, and GBA. Massive update, details above.
1.5.0 – City jazz!
Every City scene now plays chiptune jazz: swung rhythm, 7th chords over ii-V-I changes, a walking bass and soft brushes on the noise channel
1.4.10 – Foggy worlds no longer play a low buzzing drone
1.4.9 – Power savings
The screen draws at 20 frames a second instead of 30, which saves power and keeps rain and snow in step with the rest of the animation
Sound runs at a lower sample rate (22.05 kHz) with no audible difference, for about half the audio processing cost
The screen skips redrawing when nothing has changed
1.4.8 – Audio behavior
The speaker button in the top-left corner now stops and starts sound instead of muting it.
Music and sound keep playing when you leave the app or lock the phone
1.4.7 – Raindrop sfx and visitor animation fixes
1.4.6 – Master System improvements
Master System now plays by the real console’s screen limits: 32 of its 64 colors on screen, in two palettes of 16, with each 8×8 tile using one palette
1.4.5 – Further C64 optimizations
1.4.4 – C64 multicolor mode and colors
C64 now plays by the real machine’s multicolor bitmap limits: pixels twice as wide as tall, one background color for the whole screen, and only three more colors in each 4×8 cell
1.4.3 – NES hardware rules, sound behavior
NES emulation improved across all scenes to obey the real console’s color limits
iPhone and iPad: sound now plays with the silent switch on (it pauses other audio, like a music app)
1.4.2 – Version numbering
The splash footer shows the version number
1.4.1 – Cricket adjustment
Crickets go quiet in the rain, sing at one pitch per world (a second cricket joins now and then), softer, and in spells with long quiet stretches between
1.4 – Visitor and city sounds
City: trains clack along the rail and sound their horn as they cross, ferries give one long low blast and tugs two short toots, and planes swell overhead, only while they’re on screen
City: a car horn down the street now and then (rarer at night) and, very rarely, a far-off siren
Visitors everywhere get voices, timed to what they do on screen: the elk bugles when it stops, ducks quack, the hawk cries, the barn owl screeches, owls hoot from the trees, the heron croaks as it takes off, boars grunt while they root, gulls cry, dolphins splash back in, the coyote howls, tumbleweeds swish, the saucer warbles and zips off, the whale blows with each spout and sings, the arctic fox yips before it pounces
1.3.2 – NES colors
NES: shades the palette lacks, like a night sky’s navy, are dithered from two colors instead of snapping to the nearest one, so Arctic and Mountains nights no longer go flat teal
1.3.1 – City storms
The city keeps running in storms: ferries, tugs and trains carry on, and planes come in low under the cloud with their lights on
1.3 – Visitors
Visitors: incidental animations in every scene, by day, by night and in the rain (storms stay empty)
City: ferries, tugs, planes and trains on a waterfront rail
Mountains: elk, ducks, hawks and barn owls
Arctic: Arctic foxes, polar bears and whales
Coast: sailboats, dolphins, gulls, crabs and turtle hatchlings
Forest: deer with fawns, rabbits, boars with piglets, herons and owls
Desert: tumbleweeds, camel caravans, vultures, roadrunners, a howling coyote and fennec foxes
Alien: saucers, sky jellyfish, slimes, six-legged grazers and crystal spores
Visitors respect depth: nearer land hides them, and they’re scaled for their distance
Butterflies and fireflies in the forest
Night sky: shooting stars, satellites, the odd comet and meteor shower, peeking through on cloudy nights
City skies are dimmed by light pollution
Crescent moons are lit from below, with their horns up
Animations step at a low frame rate, like the rest of the art
Fixes: forest walkers no longer wade the stream, streams dim at night, desert mesas no longer hover, sailboats no longer clip the distant island
1.2 – Music and resolution
Three resolution modes: Authentic (default), Chunky and Hi-Res
Occasional drums, with kits that suit each world
Musical phrases now come home to the root chord
Rain and storms are rare in the desert
1.1 – Coast waves
The waterline moves: waves run up the beach, drain back and leave a wet sheen
The haze (from Indonesia, it should be pointed out) has been steadily worsening, and its combined threat to the local F1 race and Singapore’s global reputation on social media is probably keeping the Singapore Tourism Board on antidepressants. What’s worse, instead of clearing up in a couple of weeks as usual, experts say this time it might hang around until December because of El Niño.
Hark Pro, yet another AI agent that promises to manage your life for you, went live this week. They’ve got what would have been called a rockstar design team in the old days — led by Abidur Chowdhury, famously stolen from Apple after he featured in the iPhone Air’s launch video; and including Andrew Kim who used to run the popular site/blog, minimallyminimal. I signed up for their waitlist a few months ago, and was rewarded with free credits for the first month.
The confluence of both those things led to me launching my first new web app in a couple of months: SecondHand (blog post / app). It’s an air quality app that measures the haze in cigarettes, with some fun graphics and animations. I got the project started in Hark, made some edits with Muse Spark in OpenCode, and then returned to Hark for more enhancements. It’s pretty capable for coding projects, and extremely convenient because it can publish directly to my GitHub, put up pull requests for me to audit, and publish to the live site — all through a chat thread on my phone.
The app has done very well by my lowly standards, with over 18,000 visits in the last four days. Someone put it on Reddit, and people have told me it was forwarded to them by other friends, and I’ve even heard from someone I haven’t spoken to in years all because someone showed it to them at work (and they recognized my domain). The initial version was poorly optimized and consumed some 25GB of my Vercel bandwidth in an afternoon, but thankfully I noticed and managed to rush out some fixes. It’s now lean, mean, and ready to be seen by more people without breaking my account.
You know what else deserves to be seen? Digger (2026), the new movie by Cruise/Iñárritu that’s (imo) unjustly bombing at the box office. The film has some vocal defenders, though, including Guillermo del Toro, Anne Hathaway, and Mandy Patinkin. It currently has a 51% Rotten Tomatoes score, but is one of the most ambitious, astounding, and aggressively pointed films I’ve seen all year. Even The Odyssey feels like a distant memory now; merely an expected epic, whereas Digger is a shapeshifting subversion of modern life, culture, and their relationships with capitalism. Tom Cruise does his best work here, and I think it’ll be recognized as a masterpiece in the years to come. Five stars. You must avoid all spoilers and watch it soon.
Kim was down with a cold/flu all week, maybe brought on by the haze which has anecdotally given quite a few people sore throats. I’ve miraculously managed to avoid catching it so far. Possibly due to the following:
In the middle of her illness, I went for my annual scheduled medical and also got the latest Northern hemisphere flu jab, roughly a year since my last one. I asked the nurse if it was better to get the Southern one that comes out in the spring/summer or this one, and was told you can get both! Each one is apparently like a patch update to the last, including new strains and deprecating old ones. All this time I thought you just chose one and it covered you for a whole year. But perhaps this is unique to equatorial travel hubs like Singapore, where we’re exposed to North/South variants all year round.
Friend and ex-colleague Bert was also back in town for his annual visit, the reunion around which we’ve taken to calling Bertopia. This year’s festival was attended by Jaz, Jussi, and Ted (Christian and Jean had a date with air pollution at the F1). For the first time in my life, I decided I’d go non-alcoholic all night at a bar — on the assumption that drinking would weaken my immune system. It was… not entirely unpleasant! On top of saving money, you skip all the physiological punishment of dehydration and fatigue the next morning. I mean, intellectually you know this, but actually experiencing a hangover-free Saturday is something else.
Last week I reported the Beats 360 headphones were too small for me, so of course that ended in me buying a pair of Bose QuietComforts. 10 years ago, I wore their predecessors on a flight from Hong Kong to New York and they were roomy and absolutely painless. What will I use them for?
The 9th edition of my BLixTape playlists is finished, signaling an increase in the amount of music I’ve been listening to lately. The last few have taken six months each to come together, but this one tracks the songs I’ve liked between July to the present moment — about three months, or half the usual time. I’m quite pleased with some of the juxtapositions and transitions, for example: Bill Callahan’s Computer, an examination of his own distasteful technology use, leads into Ninajirachi’s Fuck My Computer, which is about how she loves it so much she wants to… well, it’s there in the title. Another one-two combo is the Walter Murphy Band’s A Fifth of Beethoven from 1976 going into MEOVV’s present-day K-pop DDI RO RI hit.
October 2026 — It’s that hazy time of year again here in Singapore, and lots of air quality apps have been popping up thanks to this being The Year of Vibe Coding. But I hadn’t yet seen one that puts these esoteric numbers into terms we can all understand: like smoking. It’s also fitting, given how this is second-hand smoke from a country that loves its cigarettes. So here’s my contribution to the pool.
SecondHand takes the live 24-hour PM2.5 reading for your part of the island and converts it using Berkeley Earth’s rule of thumb (22 µg/m³ over a day is roughly one cigarette). Then it puts that number in your hand! Stay indoors my friends, and keep those air purifiers humming.
Changelog:
Added a map view (hold down to pop it up)
Added a haze-free state for better days
Significant optimizations to size and performance
Copy changes for clarity
PSI and 24hr PM2.5 figures now scale with the simulation slider
Max cigarettes upped from 12 to 20, with room smoke effects