Software


CGI Coffee

All about VFX and CGI software (and more).


JPEG XL, Welcome to the Web!

Big news: JPEG XL has finally landed in two major browsers: Google Chrome and Mozilla Firefox!

Check out Can I use:

JPEG XL adoption rates, Oct 2026

Why am I this excited? Oh, it's simple really…

JPEG XL Is the End-Game Universal Image Format!

Here's why:

  • Excellent Compression Efficiency — JXL beats classic JPEG and WebP with fewer artifacts and smaller files, and holds its own against AVIF
  • Universal Feature Set — JXL replaces the entire fragmented ecosystem of single-purpose formats. It handles lossless graphics (replacing .png), variable-frame animations (replacing .gif and animated .webp), alpha transparency, and progressive streaming
  • Wide Color Depth, Gamut & Native HDR — unlike .webp (capped at 8-bit color), JXL supports up to 32 bits per channel, including floating-point HDR data (though browser gain-map support is still catching up). It also supports arbitrary custom channels (depth maps, alpha, thermal, CMYK) and handles 16-bit professional master files without gradient banding
  • Lossless JPEG Transcoding — still blows my mind: the JXL encoder can take in a legacy .jpg, shrink it by ~20%, and produce a valid .jxl image. This image can then be used to reconstruct the original JPEG bit-for-bit on demand. This lets servers and storage archives shrink petabytes of legacy data without re-encoding or introducing generation loss
  • High-Speed, Parallel Software Encoding & Decoding — JXL decodes fast on modern CPUs via SIMD, with no GPU required (though AVIF currently edges it out in raw decode speed). Plus, there are plans for dedicated hardware acceleration*
  • Open-Source and Permissive Licensing — libjxl is released under the permissive BSD 3-Clause license, with royalty-free RAND-Z patent terms. Commercial vendors, OSS projects, and web platforms can integrate, modify, bundle, or distribute JXL tools without a cent in licensing fees. So, no patent traps, no legal restrictions!

*Still on the roadmap. Please, give it some time, it's very new.

JXL is the future-proof archival format, while AVIF is currently the better web delivery format — but JXL's lossless/transcoding capabilities are unmatched. The only thing holding it back for years was browser standards politics, which is finally resolving.

It's rare for a format to solve photography, archival storage, web delivery, and high-bit-depth precision all at once without compromises in core capability. The math is too good to ignore. Browser adoption is the last domino falling…

So, finally, I can use the <img> tag to embed a .jxl image into a page:

(Image of an android saluting JPEG XL. If you don't see it — time to update your browser)

JPEG XL rules! Glory to the architects of libjxl!

Counterpoint:

Please note that I'm not saying AVIF is obsolete, or hating on it. How could I? It's basically a still frame from AV1 — and I love AV1! AVIF is an excellent format, royalty-free and already supported by most browsers.

Not only is it still relevant, but in recent comparisons it reliably beats JXL in file size for lossy web images. But for lossless, JPEG XL is the clear winner: AVIF lossless is 30–122% larger and slower to decode. Will this stay the case? Let's wait and see!

P.S. If you’re on an older Photoshop version (CS6 through v26.7, pre-June 2025), native support isn’t available by default. You can still import and export .jxl files, though, by installing the free, open-source JXL Photoshop Plugin. And while you’re at it, grab the AVIF plugin too.

Develop Cross-Platform CLI and GUI Tools With Tcl/Tk. Powerful, Event-Driven, Open-Source And Future-Proof Toolkit… From the Past?!

What if I told you there exists a language, or a whole toolkit that:

  • Can be used to create cross-platform Console and GUI tools or apps
  • Those GUI apps look native on Windows, Linux and macOS
  • Supports safe and efficient threading, non-blocking events and I/O
  • Has a small footprint of about 100MB with most common packages installed
  • Can produce very compact single-file apps for any supported platform
  • Is capable of building robust cross-platform Web Apps
  • Has existed and been in use by some of the largest corporations for over three decades
  • Is free and BSD-licensed, so you can do whatever you want with it, or to it

Would you believe me?

indiana-jones-tcl-tk-hero-title

Foreword

Documenting personal experiences on fascinating or useful topics is what I do. Real-time visualization, 3D simulation, data safety, energy efficiency, or even input devices, microcontrollers, and fitness — an endless stream of ideas for new studies and exploration is always on the To-do list.

This particular topic turned out to be quite a bit more involved than I originally planned. But I promise: all information here is what I myself would've loved to have known before I started my Tcl/Tk toolkit learning journey.

I'm writing this long after my honeymoon phase with Tcl/Tk ended, and will try to be as objective and honest as possible. For your benefit, and my own. I have nothing to "sell" except my personal experience, hoping to better inform you and simplify the "onboarding" process if you ever decide to give Tcl/Tk a try.

Due to its command-centric nature, Tcl is a powerful, yet widely misunderstood language. I want to contribute to the conversation, aiming to clear up this persistent confusion with concise explanations and concrete examples. And a bit of flair, of course, to keep you entertained.

Please note: We’re skipping the "Programming 101" talk here with the assumption that you already have a baseline familiarity with general programming logic. If you know your way around an if statement and know what a function is, you're probably ready to dive straight into Tcl-specific structures and syntax. Think of this article as both a "Tcl hands-on" and a primer, hoping to make you, too, discover and appreciate this almost 40-year-old technology that quietly powers the world. And maybe convince you to try it for yourself, and spread the word.

As for the "About the Author" — if you're interested, please visit the "About" page.

Ready? Let's go.

Sneak Peek At Blender's DLSS Real-Time Denoiser — You Have To See This!

The Future is finally here!* (almost)

Deep Learning Super Sampling (DLSS) Ray Reconstruction might make its way into Blender (at least, it's in the works). And the potential is, without exaggeration, astonishing.

Unlike "traditional" denoisers, DLSS has a different way of reconstructing an image, and largely ignores scene lighting or polygonal complexity. Because of this, it's used in games to "upscale" a low-res native render output to a much higher-res target, like 4K or more. It's very effective and, ironically, despite being an upscaler, nowadays is almost synonymous with the "best quality" rendering preset in games. Simply because more and more devs get lazy and spend less effort on optimization, especially anti-aliasing techniques, essentially "offloading" this task to a dedicated (and, unfortunately heavily proprietary) neuralnet upscaler like DLSS.

Like me, you might have wondered whether this very approach could be used in a traditional 3DCG Creation app like Blender.

Well, wonder no more! Someone took an unfinished alpha build of the Blender codebase with a DLSS integration, and compiled it into an actual test build.

Prepare to be amazed.

I can't even...

Apple Making PC Folk Look Good With the macOS Tahoe Update

Hey, remember how in the recent article on boosting battery life on Windows laptops I mentioned how power efficient Apple laptops were? And how one of the factors playing into that was the following:

The OS is bespoke. That means, MacOS runs only on Apple devices and therefore has less overhead compared to multi-platform operating systems like Windows (x86, ARM) or Linux (x86, ARM, MIPS, RISC-V and more)

Well, about that...

Apparently, Apple decided that battery life on their machines was not a priority, and more overhead is better! That includes phones and tablets, BTW, since these also received the dreaded iOS 26 update. You know, the "Liquid Glass" one.

The one, which is absolutely nothing like Windows Vista. Not at all. And stop comparing the two!

apple-liquid-glass-amazing-ui-visibility

Naturally, users were pleased with the new design direction, better UI element readability, and highly praised the decision.

how-to-disable-ios-glass-question-on-forum

In a hilarious development, seems like there are actually even more similarities between macOS Tahoe and Windows Vista in yet another metric — battery life.

On Windows 10 Support EOL

windows-95-poster

The end of support for Windows 10 updates and the aggressive push from Microsoft to force users to upgrade to Windows 11 (which is apparently "incompatible" with tons of perfectly fine computers) reminded me of a certain gem from a bygone era. I bet you've never seen it, as it was a rather obscure parody of the Rolling Stones' "Start Me Up".

“Bought It Up” was a spoof of that track, and one of several parodies and jokes spawned by Microsoft’s relentless use of the "Start Me Up" slogan during the Windows 95 launch in 1995. Windows 3.1 users who got suckered into purchasing a copy of the new OS quickly grew frustrated with its requirements and the resulting upgrade costs.

This song was later animated and shared on the forums as a Macromedia Flash (SWF) movie. Remember those? Yes, Macromedia, which Adobe gobbled up much later, in 2005. So technically this one is from the OG era of Flash. Ah, memories…

Here's the original SWF file if you need it. You can play it using Ruffle, an open source Flash Player emulator.

Just a random piece of the early internet humor culture for ya. Guess history does repeat itself, who would've known, lol.

The Tide Turns: Unity Abandons the Controversial Runtime Fee

Great news to all Unity devs out there!

Yesterday, Unity published a new post on their blog titled "A message to our community: Unity is canceling the Runtime Fee."

You have to read it, to believe it. After what felt like a catastrophic fiasco of a business model change — initially relying on an install count metric, later revised and replaced with a "runtime" metric that would count the number of Unity-made app instances running on client machines — this change of direction both fills me with delight and sends my mind racing.

Why?

I'm sure you're well aware of just how unpopular their previous decision was. So much so, that many developers announced they'd be migrating to other engines like Godot or Unreal. What's even worse for Unity — many devs actually delivered on that promise! This is especially telling, considering how buggy, incomplete, and limited Godot is compared to Unity, particularly with its build platform support. Not to mention how complicated Unreal Engine development can be due to its reliance on C++, making it less small-team friendly.

Still, I can't help but wonder why the whole Unity team including their sizeable board of directors went with a terribly and obviously flawed and under-cooked proposal from John Riccitiello, and just... Implemented it. I understand that Unity is a business with business goals, but such drastic changes to the Terms of Service should be announced well in advance, such as to not shock and drive your existing users away.

It's not my business to try and estimate how many clients Unity lost during this period of turbulence, but I absolutely welcome the return to the original business model. I'm not a fan of Unity making their 6th version require phoning home at least once every 30 days, but you're free to stick with your previous Unity LTS branch if you're content with its ToS. At least until it reaches its EOS, after which you'll have to upgrade. Other than that — good job, Unity, with getting rid of John Riccitiello, and re-evaluating your strategy moving forward.

Here's a backup of the original blog post in case Unity decides to quietly change it sometime in the future:

Unity blog bost backup

Hello Again, Unity. I Missed You

Some time ago I bashed Unity Game Engine (the Editor in particular) for its instability and lots of quirks and questionable changes that took place over the years following the version 4 release of the Editor.

Fast forward to this September. I'm done with my microcontroller shenanigans and have mostly finished the Design Document for the game I talked about quite a while ago (which took a lot of planning, for I am a project manager after all).

What's the next step then? — Exactly!

Prototyping!

So I've been playing with the latest "LTS" version of the Unity Editor 2021.3.7 and...

Wow!

And I mean a good wow:

  • It's rock solid and hasn't crashed once even when I was importing some of my older code and extension methods from the previous game which I wrote in 2012-2015. And 95% of the code-base ended up being non-obsolete! I guess Unity APIs didn't change that much over the years, huh? How cool is that?
  • Package Manager is amazing. Cutting some of the features of the engine from the binary/default assembly and turning those into officially supported packages with the added convenience of being able to download and update them as you please? What a deal!
  • Unity Addressable Asset system (or "Addressables"). Nuff said. This is a feature Unity devs had been dreaming of for like a decade
  • Nested prefabs. I know, I am a slowpoke, since this is not a new feature, but there is a difference: they work. Compared to my previous experience with nested prefabs in Unity when they would crash the editor like 50% of the time when I was editing them – now we're actually usable! Huzzah!
  • Integration with Visual Studio is very solid, pleasure to work with
  • I looks the same, feels the same and despite adding new features like DOTS and burst compiler, Unity team didn't change the paradigm too much, so being a knuckle-headed brute that I am I can continue using ScriptableObjects and MonoBehaviors for most of my objects and scripts. Yay!
  • C#. Yes, C#. That C#. It's not new of course, but it's C#. It's C#, you see. It's not C or C++. It's C#. I love C#, I guess that's what I'm trying to say
  • Also, Asset Store is still a thing. And can still save hundreds of hours of development for a couple hundred bucks
  • Oh, yeah, it's still free of charge for indie devs. Just sayin'

All in all, the time has come...

Unleash the monkey coder!

monkey-coder