Tag: Photo Editing

  • Week 31.26

    Week 31.26

    • Home issues, like a roof leak that I need to resolve with the building people, have been attacking my mental health this past week. I’ve spent too many waking and dreaming hours on them already, so I won’t get into it further apart from this record for posterity. Hopefully things will improve.
    • While browsing YouTube, I came across a Rick Beato interview with DOMi & JD BECK, whose 2022 alt-jazz album Not Tight I quite enjoyed. Now, I’d assumed that they had just disappeared, swallowed up by an industry that doesn’t have time for esoteric styles, so seeing them pop up was a surprise — I didn’t dare to believe it meant new music was coming. I started watching and was sucked in for the whole hour, and indeed there was a new album set to launch the next day. I decided right then and there to buy a signed copy on vinyl from the Blue Note online store. Shipping cost $31 USD but I was so keen, nothing was going to stop me.
    • The album WHO ASKED? is now out on streaming, and reactions are mixed. Complaints fall into two categories: technical and musical. They recorded and produced most of it themselves, with little experience, and many think the sound was compromised — muddy, distorted drums, and a very busy mix. Musically, it’s also a very challenging suite with a lot going on: orchestral instruments alongside their frenetic playing, loads of counterpoint, and switching time signatures. Plus, they sing on nearly every track, versus providing only harmony on one song off the last album.
    • Personally I find the Dolby Atmos mix on Apple Music to sound better, with better separation, and think of the whole vibe as a deliberate choice. They mention in the Beato interview that the vinyl mix was shipped earlier (same with Rosalia’s LUX) and has a more hi-fi sound with less bass. Musically it might be too early to call, but I like it and think it sounds exactly like what you get when you let two prodigies make music that interests them. Their live performances online were always better to me than the cuts on the first album, and that may be the case again here. I’ll drop a few links below to get you started if you’ve never heard them.
    • After joyously listening to music all afternoon, I loaded up the short film The Non-Actor on MUBI, starring Victoria Pedretti and Maya Hawke, which turned out to be about a woman who’s going deaf. Well, it’s not just about that, it’s also a lesbian/yuri story, but it made me think a bit about losing my hearing and how this might be my last decade before it starts to deteriorate. Imagine never hearing your favorite songs the same way ever again; the instruments slowly fading out or disappearing. I’d be inconsolable.
    • I also finished reading my 37th book of the year: Yang Shuang-zi’s Taiwan Travelogue, winner of the 2026 International Booker Prize. It’s also yuri, and this author has actually written manga. Although I’d seen numerous mentions of the book online, I started reading without knowing anything beyond what the title suggests. Turns out it’s a metafictional work that pretends to be a new translation of a little-known post-war novel based on a true story — despite being a completely new work of fiction. Ultimately it’s about colonialism’s effects on Taiwanese culture, Japan’s actions during WWII (there are notably several translated Taiwanese novels about this period, which I may read someday), female relationships, translation, and food. 4 stars.
    • My current favorite camera app, Analogue, got a big v1.5 update this week. I’ve preferred this for the last few months because of their unique approach: instead of using Bayer RAW capture to get more natural (less HDR processed) results from the iPhone’s camera sensor, they use a video pipeline — taking screengrabs in Apple LOG, which allows them to get really beautiful, softer images that you can apply LUTs to (including Fujifilm’s official film simulation LUTs in F-Log). Well, what does the new update add? Don’t laugh, but it’s Bayer RAW capture. However, unlike every other camera app such as Halide, Lampa, and NoFusion, Analogue merges the use of Bayer RAW with their innovative processing approach, meaning those Fuji film sims continue to work on top of sharper, native 4:3 photos. If none of that made any sense to you, the plain English is that this is your best alternative to the default camera app.
    Sushiro is helping to break this Japanese sausage brand into the local market, and the sushi dog was their chosen vehicle.
  • Week 30.26

    Week 30.26

    • 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.

  • Week 24.26

    Week 24.26

    It was WWDC week. Apple made good on their promise of a smarter, generative AI-powered Siri two years after first describing the concept. Enough has been said about that slipped deadline, but the verdict on social media this time is that they’ve actually delivered. I was tempted by all the reports of how stable the first developer beta is, and installed it on my M1 iPad Pro. I hope I don’t regret it, but so far so good.

    It’s no surprise that the first beta is in good shape, because this year’s OS updates are looking to repeat the feat of Mac OS X Snow Leopard, where effort was expended on optimizing performance and fixing longstanding issues rather than adding new features. There’s a list of nearly 300 improvements, and I’m looking forward to many of them, especially the faster loading of items in Apple Music. There are also very welcome refinements to the controversial new unified design language system colloquially known as Liquid Glass. Steve Lemay, may this life bless you and yours with happiness and good health.

    There was so much to discuss and dissect this week that Michael and I spent over four hours across two FaceTime calls. Okay, some of that time was spent talking about his new collaborative crossword puzzle game, Crossmate. I’ve played a couple of games and it’s a lot of fun, like how we used to play the NYT crosswords at the office on a big screen. It’ll be on TestFlight soon for wider testing and I’m excited to see how people like it.

    But the next generation of Apple Intelligence was the headliner and the thing most people will hear about. While I expected most of the things announced, there were a few I didn’t. The new Spatial Reframing capability, for one, is a brilliant use of image generation to enhance an existing photo beyond the removal of objects — one that treads very close to contradicting Apple’s earlier stand that photos should be documents of things that did happen. This new take technically does ‘respect’ a real moment in time, with the exception of the camera’s position in space. I wonder if this is as far as they’ll go, or if the line will continue to be redrawn over time (turning a photo into a video, for example).

    I also did not expect Apple’s AI to offer text generation from scratch, helping you to fill a blank page, much like what ChatGPT or any other consumer chatbot has done since the beginning. I thought their initial approach of only proofreading or editing existing text was the right one, but it’s clear that market forces are guiding their hand and features like this and photorealistic generation in Image Playground are simply table stakes now.

    After the presentation, I thought it was super obvious that the new Siri AI will make ChatGPT, Claude, Perplexity, etc. unnecessary for many casual users of AI, and many commentators on Twitter have also since shared this opinion. For people using chat interfaces to look up quick answers, do a spot of online research, brainstorm ideas, and generate text documents and images, there’ll be no quicker or more cost-effective way than to ask Siri on one of their Apple devices. On an iPhone, just swipe down from the Dynamic Island and the prompt field appears. Or hold down the power button and speak.

    It appears that the combination of on-device and cloud models will handle a normal amount of requests for no charge, and subscribers to iCloud+ storage will get more generous limits. Why would anyone pay USD$20 a month for third-party AI unless they also needed it for coding? And that’s before you even add in the advantages of having all your personal context available for Siri to work with, privately. I’ve long held off on connecting my email, Dropbox, and other services to ChatGPT and Claude, even if it would make them more useful. Once you open the gates for data to flow out, there’s no getting it back in. Apple is the only company I’d trust with all of it, precisely because their approach doesn’t require me to trust them.


    • Remember how I complained a few weeks ago that Amazon Fresh was ceasing local operations? One positive side effect of that emerged this week, in the form of a push notification arriving around 9:30 AM saying that some alcohol products were on 60% clearance sale. I jumped on that with a quickness, and received 20 bottles of wine later the same afternoon. If we lived in Australia, we’d be paying those prices on an everyday basis, but we don’t. I should have gotten twice as much.
    • Japanese konbini inspire all sorts of media, and I’ve read the books Convenience Store Woman and The Convenience Store by the Sea (which is now a live-action series). They’re… okay. This week I played the game InKonbini on Switch 2, which simulates a week of running a countryside store in 1993. I’ve had this indie game on my radar for a couple of years, but initially resigned myself to never playing it because they’d only planned to release for PC/Windows. It’s now on every major platform, and a very chill and cozy game, albeit short enough to finish in a couple of days. I spent a lot of my time straightening out the shelves and making sure every can, bottle, and sandwich faced outwards.
    • John Scalzi’s “Old Man’s War” series of books continues to be a very fun sci-fi adventure. I’ve finished Book 4: Zoe’s Tale, and it pulls off a rare Rashomon move across two installments. It essentially retells the entire story of Book 3, but from another character’s (Zoe’s) perspective, while somehow managing to be additive rather than repetitive. That’s quite a feat.
    • If you’d asked me what films I’m looking forward to this year, Disclosure Day would have topped the list. I’ll watch Nolan’s The Odyssey but I’m not in any hurry. We saw DD this weekend and I had a good time throughout. Nobody puts a scene together like Spielberg; everything is dynamically shot and immersive. But I was left afterwards with the feeling of too many plot holes, and too much exposition of the film’s values through monologues rather than action. Wait, I forgot that I would have also put The Drama on that list, and I’d been dying to know what the awful “secret” alluded to in the trailer was. We also saw that this weekend and had a lot of fun, even if it didn’t fully live up to my high expectations either. Both films get 3.5 stars.
    • I watched Empire Records (1995) for the first time, because Netflix said it was leaving their catalog soon. This was a film I’d always sort of believed I’d seen, but it turns out that I just knew the soundtrack really well and seen a couple of scenes. What a glorious document of its time. Immaculate vibes, and probably more entertaining today than it was at the time because of how much there is to appreciate — not just the lighting, set design, and music, but the whole nostalgic idea that a giant, two-storey record store could be the cultural center of a community, and that people would fight to protect it. Killing them was a tragic error.
    • While talking about it, Cien said the film dates itself by virtue of its message that selling out is bad and uncool, which I didn’t quite understand. Isn’t selling out still uncool!? And then Michael said the same thing on an unrelated topic — that selling out was something only us senior millennials and Gen Xers shunned. Everyone after sees it as a sign you’ve made it. I think they meant this on an individual level, which is jarring enough. But the film is about independent spaces being consumed by soulless chains, and I worry even that’s an alien idea to younger generations raised on influencer culture and brand collaborations. I haven’t been the same since.
  • Week 15.26

    Week 15.26

    I’m looking through my camera roll to remember what happened this week and it’s mostly a bunch of “artworks” I’ve been making. Wait, let me step back: I’ve had an interest in procedurally generated graphics (GenArt) for awhile, and it peaked with the NFT boom of 2021–22, where I spent a relatively obscene amount of money minting and collecting artworks I really liked (not the monkeys). I’m mostly drawn to the idea of mathematically rigid routines producing organic beauty — the contrasts in that, and the unpredictability of what you get when you roll the RNG dice.

    So after my recent experiments in making apps, I wondered if I could get AI to write me code that would generate images based on concepts I described. The answer is, of course, yes! It’s important to note this isn’t prompting for images (like when you use Midjourney or DALL-E), it’s prompting for the math behind making images. And once you’ve created the rules by which it draws different art styles, you can create a nearly infinite number of unique artworks by dialing different variables up and down.

    One example is a “style” I made called Labyrinth, which produces actual, solvable mazes. Depending on the variables you adjust, you can make mazes ranging from tiny to massive, with just one solution, or many. If you asked an image generation AI to draw a maze, it would likely lack the coherence of a real maze, because of the way it operates — focusing on the superficial appearance and not the integrity of its paths. But an AI model can make the math to draw a maze.

    I start most of these by thinking up an artistic production approach, say “take sheets of colored cardboard or acrylic, and punch holes of varying shapes into them, then layer them on top of each other so the holes line up (or not), and randomly spray contrast-colored paint on some of them”. Then I describe the possible variations and variables I want to control to the AI, such as the density of shapes, the thickness of the borders, the ratio between angular and organic lines, and we iterate after seeing some of the results. Just think of all the methods and ideas you might want to play with, and how this lets any old idiot model them on their computers!

    The meta project is that I’ve made a modular app that handles all these different styles for me, whether they require a 2D canvas or WebGL. The app provides a common UI layer that all “styles” can plug into, which allows me to control them. Now that it’s done, I can just focus on experimenting and having fun making new artworks. I daresay a few of these are executed as well as any of those I spent money on.

    I’ll probably release it as a wallpaper generator once I have enough styles built in, if anyone’s interested. But mostly I love having this as a background project that I can dip into, on and off. It allows me to take on other app ideas as momentary “side quests”.

    While making Labyrinth, I showed a maze to Cong, who said “You should do a puzzle maker”. To which I said, “Nah.” And then a minute later… “Although, a daily maze game. Hmm.” It made sense that I could save time by taking CommonVerse’s daily random generation mechanic and combining it with Labyrinth’s logic to make a daily maze challenge. But would it even be fun to trace a 2D maze with your finger and try to solve it? No… so what if it was a 3D maze you had to escape?

    The first prototype took a couple of hours, and I’ve been polishing it for the last few days. I think it’s coming along nicely. I’ll put it out soon, once I balance the difficulty and get more feedback from testing.

    The development of a maze, a maze, a maze… was hampered by a rare bar crawl with Howard and Jussi on Thursday night that gave me a massive hangover lasting into Friday afternoon. When I got home, I was too plastered to care that my vinyl copy of J Dilla’s Donuts had arrived from Amazon US protected by nothing more than a flimsy paper envelope. By the clear light of day I was amazed that they would even do such a thing. The discs are intact, but the sleeve has a bent corner. If I’d ordered from Amazon Japan, I would bet a major internal organ that it would come wrapped in four layers of stiff cardboard, bubble wrap, and a handwritten apology for their carelessness.

    Did I mention we’re going to Japan again? It’ll be a short vacation, in a couple of weeks’ time. Not much on the agenda, just checking in on the state of curry rice and egg sandwiches. Maybe see some nice art. Take some photos.

    Which brings me to the latest betas of Halide MkIII, which I’m very much looking forward to using on the trip. They’ve been progressing the app nicely, and it might be enabling the Holy Grail of iPhone photography workflows for me. Ironically it involves using Halide not as a camera app, but just as a photo editor. You can shoot compact (lossy, JPEG-XL compressed) ProRAW photos up to 48mp with the default camera app, then edit them in Halide to have the same look as their Process Zero photos! What this means: you get all the benefits of computational photography at time of capture, including noise reduction and night mode, but you’re also free to dial it back and get natural, “real camera” photos in post if the scene calls for it.

    As much as I like these side quests, I think making my own photo editor would be biting off entirely too much to chew, so I’m still rooting for these guys to crack it.

    While writing this post, I got the news that an elderly aunt passed away at the age of 93. She had been in reduced health since the Covid years, but by all accounts she went very peacefully and I guess you can’t ask for much more than that after a long life. The extended family’s Chinese New Year routines fell apart in recent years after she pulled back from organizing them, so it was fitting that some of us got to reconnect at her wake on Sunday evening.

    See you next week.

  • Week 14.26

    Week 14.26

    An update on my app addiction

    On Wednesday morning I woke up and saw that my last app DataDeck was getting a bunch of likes and reposts on Bluesky, which was a nice surprise. If ever there was a place where people would appreciate a wacky, nerdy idea, I guess that would be it.

    My Instagram Story on Wednesday

    I made a couple of post-release updates to my magnetic poetry non-game, CommonVerse. There are now two new themes, one called Label Maker that resembles those little Dymo stickers we used to make, and another called Zine which is like a random note of cutout words. The UX has also been improved in subtle ways that might make it easier to manage making sentences.

    My “main” app project now is one that I can keep noodling on in the background, with no real endpoint — it’s done when I think it’s done — and the idea was that would help me slow down and spend less time with this vibe coding stuff. Guess what happened? That’s right, if you design something that can sit on the back burner, it will sit on the back burner. I started work on another app instead.

    Defying time and gravity

    I’ve known that the next step was to play with agentic coding tools like Codex or Google’s Antigravity. These are code editors with integrated AI that can look across all your project files and manage multiple agents working on simultaneous tasks. It’s a far cry from the way I’d been working: getting advice and instructions from a single chat, and then doing everything myself in a code editor. So I finally got started with Antigravity, and it blew my mind.

    The productivity increase is hard to describe. I could just describe stuff and it would get done without further work on my part. The tool can use the system’s terminal and Chrome browser to install packages, click around and test the app, figure out why things aren’t working, and fix it while you watch. Stuff that took me days over the last month could have been done in hours. It was automating so much of what little I, the non-programming human, was doing and considered my job, that it made me feel kinda redundant, to say nothing of real programmers.

    With Antigravity, the MVP of my app concept was done in three hours on a Friday. The good/bad news was that it blew through most of my token allocation for the week. So I went back to the “old” way of working and made subsequent changes manually. What I discovered was that I much prefer getting hands on with the project files, looking through the code to understand what was going on and what went where. I think I’ll use these agentic tools to get started fast and figure out a working architecture. After that, it’s more fun to get involved and make improvements slowly.

    Ate and left the Crumbs

    So the new app is called Crumbs, as in breadcrumbs, as in leaving a trail of them so you know where you’ve been. It’s a private location journal that lets you mark where you are on a map with a single button push. Over time, you can see the path of your journey(s).

    I made this because I’ve always wanted something like this for logging holidays, and no app really does what I want. Foursquare’s Swarm is based on Places, so you have to find the business listing or entry in order to check in. If you’re in the middle of a national park, or in a country where no one has created Places, or you can’t read the names, you’re out of luck. Google Maps has a Timeline, but it tracks your location all the time, and it only shows your trail on a day-by-day basis. Your data is also locked in their app and you can’t get it out to visualize in other ways.

    Crumbs is private, and you can take the data out in JSON format. It logs the time and weather along with your location, and you can write little notes. You can save an image of your map, or export a PDF of your journal.

    A big breakthrough (for me)

    Unfortunately, because it’s a web app and not a native iOS app, it can’t permanently store data on your device. The OS may decide to purge all your data if you haven’t used it in a week. That’s a dealbreaker for any app intended to be a life-logging tool. That really bummed me out, and I thought it would just have to be a personal tool that I couldn’t distribute to anyone else — since remembering to do manual backups/restores of the JSON file would be a massive PITA for any user.

    And then I had a Eureka moment! I thought of a possible solution and asked Gemini if it was feasible, to which it answered “Yes, this is an ideal solution”. I wanted to scream “Well, then why didn’t you suggest it all this time we’ve been discussing how to get around the problem!?”

    The answer was Dropbox integration. I can’t make a web app read/write files locally, but I can do it in the cloud. So now Crumbs is as useful as a “real app”, provided you connect a Dropbox account.

    As of Monday morning this post is late and I think Crumbs is ready, so here it is.

    The first ugly prototype of Crumbs out of Antigravity

    Other thoughts

    • Here’s a free idea: I was inspired by this stamp journal that went semi-viral, and wanted to make some sort of digital Instax photo album. It’d be kinda nice to keep a virtual scrapbook of interesting images, right? Well, turns out you can just use Apple’s Freeform app and Dazz Cam. It’s as simple as making a board and dropping in images, then arranging them however you want. All stored locally and synced to iCloud, easy peasy. Just because you can vibe code it doesn’t mean you should.
    • My iPhone’s MOFT Snap Case developed a cut/tear in its faux leather surface, and so had to be replaced after just six months. Its replacement is a Caudabe Sheath, which fits my requirements of being neither silicone nor slippery, with full edge coverage and a Camera Control passthrough button. It’s a hard plastic material with a rough, pebbled texture that makes it feel secure when held. It also came in second in MobileReviewsEh’s roundup of the year’s best cases. I got the version with the ‘open’ cutout for the 17 Pro Max’s camera island, not the ‘precise’ covered design.
    • Kim managed to finish reading Project Hail Mary and we went to see the film on Sunday (non-IMAX). Apparently there’s a longer cut, nearly four hours, which will be released on streaming in August when it comes to Amazon Prime Video. Yes, this is billed as an Amazon original film from the very first frame, coming even before the MGM logo (which they own), and I don’t think that will ever stop being weird. The film is good, a mostly faithful adaptation of a fun but slightly flawed book. I just think they glossed over a lot of detail in the final act, which lowered the stakes and made it less exciting and rewarding than it could have been. Hopefully the extended cut’s extra run time is concentrated at the end.
  • Collagen

    Collagen

    Use Collagen at collagen.sangsara.net


    A simple tool for making collages, specifically with album cover art.

    Most collage tools are either bloated with unnecessary social features or too restrictive to be useful. Collagen is a single-purpose utility designed to solve a specific friction: the tedious process of manually sourcing high-resolution album art, aligning it in a grid, and then realizing you want to swap the top-left for the bottom-right. It turns a multi-step design chore into a fluid, drag-and-drop experiment.

    v2.0 screenshot
    Crop to fit a range of new aspect ratios

    Features

    • Integrated Sourcing: Queries the iTunes database for official, high-resolution artwork (600×600) so you don’t have to hunt for covers or deal with low-res thumbnails.
    • Tactile Reordering: Drag and drop tiles to swap positions instantly. The layout logic handles the movement so you can focus on the visual flow.
    • Flexible Dimensions: Define your grid up to 10×10. The preview and export scale dynamically to match your rows and columns.
    • Hybrid Content:
      • Search: Instant API pulls for mainstream releases.
      • Upload: Support for local files (obscure imports, demos, or personal photos).
      • Text Tiles: Add context or labels with custom text tiles. Features automatic contrast (white/black) and a choice between a clean sans-serif or a classic serif typeface.
    • Borders: Toggle between borderless, white, or black frames. The logic includes outer edge padding for a symmetrical, finished look.
    • PWA Architecture: Built to be “Added to Home Screen.” It caches assets locally on your iPhone for faster subsequent loads and works as a standalone app.
    • Export: One-click generation of a high-resolution stitched PNG. It uses a dedicated image-proxy pipeline to ensure every tile renders correctly without the “blank square” errors common in browser-based canvas exports.

    Change log:

    – 14/04/26: Version 2.0

    – 14/05/26: Increased export resolution, non-destructive cropping.


    Disclaimer: I made Collagen with the help of Google’s Gemini 3/3.1 Pro LLM and take no responsibility whatsoever for any damage you do with it.

    Related blog post: Week 9.26

  • Week 51.25

    Week 51.25

    I shot these photos on an iPhone 17 Pro Max and emulated three classic Chinese B&W film stocks with AgBr: Lucky SHD 100, Friendship 100 Pan Film, and Shanghai GP3 100. The idea was to get the look of road trip snapshots from the 1990s that a traveler then might have taken.

    11 greatly biased observations from a first trip to China

    • The Great Firewall does indeed block the majority of household internet names in the west. Imagine testing if you’re online, what would you type in the address bar of your browser? Google? Nope. Any Facebook property? All social networks and chat platforms don’t work, with the exception of iMessage. However, this only applies to hotel WiFi networks and those provided by local ISPs. If you’re roaming on a cell network while using a foreign provider’s SIM, things work as expected (albeit routed through Chinese servers). I decided not to bother with VPNs and just trusted in HTTPS 😬
    • Powerbank rental machines are ubiquitous, even in places where you should never leave a box full of lithium-ion batteries, like out on the street in direct sunlight. You pay a few cents per hour (via QR code), and because they’ve landed on a common battery design between the many operating brands, it seems you can return one anywhere else after you’re done charging your devices. It’s great not having to carry your own around, but even given a high degree of civic integrity, I think getting adoption in a country where everyone already has their own (like Singapore today) would be tough.
    (more…)
  • Week 48.25

    Week 48.25

    My personal MUBI Shaolin film fest went on as planned, and I managed to watch a few more before they left the service. Gordon Liu had a role in just about all of them, which shows what a popular and influential figure he was in the industry. Who even comes close in Hollywood? Pedro Pascal??

    If I had to recommend one Shaw Brothers film, it would still be Dirty Ho (1979) which I’ve mentioned here before. It’s essentially the same winning template that Jackie Chan’s career was built on — lots of brilliant, intentional fighting moves masked as accidents and incompetence.

    The most uneven one I saw was Legendary Weapons of China (1982), which has about five different plot lines running through it, all to provide flimsy justification for the spectacular finale in which 18 (!) different Chinese weapons are brandished, and as many fighting styles showcased. It’s like Don Draper pitched that idea on a whiteboard and then they had to come up with another 70 minutes. There is an extended action sequence in a straw toilet hut floating over a river, where people literally end up in the muck. This absurd scene involves both kungfu and possession with voodoo dolls.

    In another realm of absurdism lives Dogtooth (2009), the debut film of Yorgos Lanthimos which made a splash at Cannes that year. I saw it on MUBI this week because I liked Bugonia (2025) and wanted to start at the source. Jesus, this film is an exercise in creating the wrongest setup and then having its characters do things that follow on logically but are still nevertheless very wrong. You get the sense of perversity for the sake of it, or to give life to the director’s own kinks, sort of like Tarantino putting his foot fetish in everything — but still actually much worse.

    However, do something terrible with craft and conviction, and it will gain lasting historical value. That’s how this world works; I don’t make the rules! But what if you don’t actually make the thing and just have the idea. In the form of a prompt, let’s say?

    Images that never happened

    Google released their Nano Banana Pro image generation model recently, and I’m sure we’ve all seen examples online by now. Things have progressed to the point where I’m constantly questioning the veracity of things I see online, and I think at some point the mental filtering will become so tedious that we’ll simply stop wondering and accept things that are true and untrue equally. If the short-form video that ruins your brain’s ability to focus and feel joy on normal terms makes you laugh, who cares if those things really happened? And then it will extend into other parts of life, and then… who knows?

    I decided to see if Nano Banana could place me in ROSALÍA’s LUX album cover and, of course, the answer was yes. Too easily, in fact. I only supplied it with a single forward-facing photo of me at a dinner table, and it was able to extrapolate what I’d look like from a different angle. We are, ladies and gentlemen, so cooked.

    It was also Black Friday sales week, and I decided to give VSCO Pro’s annual subscription a try at 50% off (hard to justify at full price). In addition to their Pro set of filters, which are actually really good, it also comes with access to AI tools, of course. Their object removal is state-of-the-art, to the point that it can invent very believable portions of an image that you wouldn’t notice unless really scrutinizing the scene. After a few experiments, sculpting messy scenes in old photos into what I wished they actually looked like, I had to step back and ask myself what the hell I was doing. Apple’s refusal to let the iPhone create “images that never happened” is absolutely the right stance.

    What becomes of designers?

    AI’s obviously going to change the way we work, and I’ve been worrying for a while now about the future of the design profession. About the people who do this work, whether they will continue to be attracted to it, who will pay for their services, and what those services will actually look like. It’s been hard to imagine timelines that are positive by the standards I care about.

    As with many sectors that have experimented with AI tooling, I often hear that senior practitioners using generative AI models can get more done “on their own” — the highlighted phrase implying 1) without the assistance of those pesky junior people, and 2) more cheaply for the business. But just because the tasks once performed by junior people can now be done by AI doesn’t mean juniors can’t find something else to do, or don’t need to be trained anymore. Nevertheless, some business leaders are acting as if that were true.

    A friend told me how it’s now possible to run a small agency powered by seniors + AI only, without any junior hires. They were surprised that I pushed back — but the idea sounded irresponsible to me. It’s one thing if you can’t find employment and have to embrace AI to put food on the table. It’s another to be in a position of strength late in your career and choose this. If you can’t afford to leave the ladder down behind you, I said, it would be better not to do it at all.

    But because bean counters can always be counted on for short-term thinking and a reluctance to spend on design, some companies will go further and not hire AI-augmented senior people at all. They’ll either use inexperienced juniors or ask someone like a product manager to handle “design stuff” on the side using AI. Depending on how much the tools improve, the visible outcomes of this may seem acceptable for quite a while! Design won’t go away as a function, it’ll merely be handled by a different group of people.

    My main concern has been that doing a good-enough job in this way will scale so well, and become the dominant approach so quickly, that we’ll lose the diversity and depth of craft that comes from having human practitioners out in the real world, doing things like interviewing users to understand outlier behaviors, reading contextual cues and hearing what they don’t say as much as what they do. Then using these unique stories to make the larger design solution more resilient. It’s a job that humans are well equipped to do. A business that relies on AI to create an average of best practices may happily miss all of it.

    Why do I think this matters? Because while a bunch of LLMs trained on world knowledge (including artifacts from past design exercises) will generate pretty good insights and workable interfaces from a wide field of generic possibilities, it’s still a path to a monoculture of experience. And if we break the chain of passing down the skills to do the work, then some future post-AI generation will have to learn them all over again.

    I wondered if there might be a market for artisanal human-led design work. After all, centering the role of human craft has kept the luxury goods market alive in the face of mass manufacturing. But that would mean it becomes something performative, and necessarily restricted to higher paying customers. I actually believe that AI augmentation can produce better work; I just don’t trust our economic systems to nurture it over cheaper work.

    Teach an LLM to fish…

    Then this week, I saw something on TV that seemed like an apt analogy and put me into a more zen state of acceptance. It was an episode of Japanology Plus on NHK, with long-suffering host Peter Barakan forced to go out on a small fishing boat in challenging waters. I was honestly surprised the producers/insurers allowed a man of his age to do it.

    Anyhow, as they were heading back from being thrown around by the waves, he asked the captain how fishermen in the old days would have survived that ordeal without GPS, walkie-talkies, and engines. The captain’s reply was that it was more dangerous back then, and they had to use their experience and intuition, navigating by looking at the mountains and stars, reading the winds and currents. You can imagine many lives were lost on the job.

    Would any of those old fishermen trade places with their descendants today, giving up those seafaring skills for the ability to catch many times more fish and live twice as long, comfortably? Very likely! Modern fishermen are still out there on the ocean but their technology distances them from intuiting the waters in the same way. We also know now that the scale at which they fish those waters is unsustainable.

    Likewise, there will be more designers in the future, less skilled by today’s standards but able to oversee projects too complex for us to fathom. Maybe with worse overall outcomes for the world than if we’d never opened the mystery box of AI. But I realize now that this pattern of losing one thing to gain “something more, but worse” is simply an inevitable law of the universe. Two steps forward, one step back.