PowerEmu
Every PowerPC emulator before this one asked you to settle: a desktop drawn in software, no Quartz Extreme, no games worth the name, one processor and a great deal of patience. PowerEmu gives the power back. Mac OS X Tiger or Leopard on an emulated G4, with a real ATI Radeon 9000 rendering through Metal on the graphics chip you already own, up to two processors, up to 256MB of video memory, and Warcraft III at around thirty frames per second on all-high settings at 1680×1050. Classic, for everything older than that. And a real physical hard drive you can install onto and screw straight back into the machine it came from.
Extreme measures
Other emulators hand the guest a flat framebuffer and leave Mac OS X to push every last pixel with the processor. PowerEmu emulates an ATI Radeon 9000 and routes its 3D commands straight to Metal on the graphics chip already in your Mac, so Mac OS X goes looking for the card it expects, finds it, loads its own ATI drivers and turns Quartz Extreme on by itself. No patching. No coaxing. No modified system.
Give it 64, 128 or a full 256MB of video memory and the results are not subtle: Warcraft III runs at around thirty frames per second with every setting on high, at 1680×1050, on an emulated G4. The same game on plain QEMU managed four or five frames — a slideshow with ambitions. This is the real thing, rendered by hardware twenty years newer than the card it is pretending to be.
Twin engines
One G4 was never the top of Apple’s range, and PowerEmu doesn’t stop at one. Hand a virtual Mac two G4 processors and Mac OS X does exactly what it did the day it shipped on a dual: spreads the work across both chips, keeps Aqua answering while something heavy grinds away behind it, and reports the pair in About This Mac, in black and white, where you can point at them.
Both of them run flat out, too. PowerEmu tells macOS it is busy, so App Nap never quietly exiles the emulator to the efficiency cores while you work in another window, and a retuned translation layer underneath took a guest benchmark loop from nine to eleven seconds down to 1.95 — five times faster on the same hardware, before you add the second processor at all.
Back from the dead
PowerEmu boots from and installs onto a physical hard drive wired to your modern Mac. Not a disk image. The actual disk.
So the drive out of the G4 that died years ago goes into an enclosure, and Mac OS X itself does the reading — every folder where you left it, every ancient format still native, resource forks intact, recovered by the only operating system that ever properly understood them. Then go the other way, which is better still: build a fresh Tiger or Leopard system on a new drive without waiting on a dying bus, screw that drive into a real Power Mac, press the power button, and watch hardware still earning its keep come up on a system disk laid down on a Mac from 2026.
In perfect Harmony
Two Macs on one screen shouldn’t feel like two computers, and Harmony sees to it. Copy in Tiger, paste in macOS, or the other way around. Drag a file across. Share a folder and it mounts on the far side as a volume with an icon on the desktop. The clock stays set. Shut Down asks Mac OS X politely, the way the menu item always did. And the pointer walks in and out of the window with nothing to capture and nothing to release.
Then Harmony does the thing no G4 could ever do for itself: it lends the old system your modern connection. Mac OS X’s own Mail app signs back in to iCloud or Gmail, twenty years after it last could, and the Web Accelerator hands pages to the guest already decrypted, transcoded and resized — so a system from 2005 gets a 2026 web it can actually read.
PowerEmu is built on QEMU, which already knows how to pretend to be a Power Mac. On its own, though, it stops a long way short of usable. Here’s what changed.
| Plain QEMU | PowerEmu |
|---|---|
| A dumb framebuffer. Mac OS X draws every window itself, on the CPU. | An emulated Radeon 9000 that Mac OS X’s own ATI drivers bind to, unmodified. |
| No 3D at all, so games and screen savers either crawl or refuse to launch. | 3D commands go to Metal on your real GPU. Warcraft III runs around 30 fps on high. |
| Quartz Extreme stays off, because Mac OS X looks for a real card and doesn’t find one. | It finds one. The compositor turns on and windows move like they should. |
| The pointer smears trails across OpenGL windows. | The host draws the cursor, so it stays clean. |
| A short list of old resolutions, none of them the shape of a modern display. | Modes that match your panel, plus true full screen including the notch. |
| Audio crackles and cuts out constantly. | Paced in real time, which fixed the dropouts. Some distortion is still being chased. |
| Plug in a USB device at the wrong moment and the whole thing wedges. | The USB controller drops missed frames instead of livelocking. It keeps going. |
| Click another window and macOS quietly parks it on the efficiency cores. | It tells macOS it’s busy, so it keeps running at full tilt in the background. |
| Stock settings that suit PowerPC code badly, so everything is slower than it needs to be. | Retuned emulation internals. One guest benchmark went from 9–11 seconds to about 2. |
| No link to the host: no clipboard, no shared folders, no clock sync. | All three, plus a real Shut Down instead of yanking the virtual power cable. |
| A second Dock icon and no way to manage more than one machine. | One app, one icon, and a library of VMs with their own disks and settings. |
- Your Mac
- An Apple silicon Mac. The renderer is Metal, so this is not optional
- macOS
- macOS 14 Sonoma or later — what the app is built against
- Processors
- One G4 as standard, or two on the experimental emulator build, which ships alongside the standard one
- Memory
- Whatever you give the virtual Mac, 2 GB by default, on top of your own
- Storage
- Room for a guest disk. A working Tiger install runs to tens of gigabytes once you fill it
- Video memory
- 64, 128 or 256 MB, your choice, inside the virtual Mac
- Guest system
- Mac OS X 10.4 Tiger or 10.5 Leopard, installed by PowerEmu from your own disc
- You supply
- A Tiger or Leopard install disc, or a disk image you already have. Apple’s install media does not ship with PowerEmu
- Price
- Free. GPL-2.0-or-later, like QEMU underneath it
Graphics
- An emulated ATI Radeon 9000 (RV280/R200) —
ppc-mac-gpu, with an MMIO register set, a PM4 command processor and ring buffer, a 2D engine (fills, blits, host data, clipping) and AGP/GART address translation. Mac OS X’s own ATI kexts bind to it unmodified. - A Metal renderer for the R200 3D pipeline. Draw packets go straight to Metal: hardware T&L (model-view-projection, lighting, spot lights and attenuation, texture matrices, fog), viewport and scissor, R200 texture combiners, alpha test, blending done in-shader through framebuffer fetch, plane masks, depth and stencil. Textures in ARGB8888, RGBA/ABGR8888, RGB565, ARGB1555, ARGB4444, I8, AI88, DXT1/3/5 and YUV 4:2:2, resident in VRAM or fetched over AGP. It renders into VRAM through linear Metal texture views — no shadow copies.
- Quartz Extreme. The uni-north host bridge gets an AGP capability and a working
GART, so Apple’s
AppleMacRiscAGPdrives the bus, the Radeon driver builds its AGP GART and reportsAccelCaps = 1, and WindowServer switches on the OpenGL compositor. - A hardware cursor. A patched QEMU VGA NDRV reports cursor support and hands the image and position to the GPU model, which draws it on the host — fixing the stale save-under that left cursor-shaped notches over OpenGL windows.
- Host-shaped display modes. The device’s EDID (Established Timings III) and the patched NDRV’s mode table add 1440×932, 1280×828, 1152×746 and 1680×1088, plus below-the-notch variants. Full-panel fullscreen covers the whole display including the notch strip.
- 64, 128 or 256 MB of VRAM, behind a 1 GB uni-north PCI window.
Sound, input and stability
- Screamer audio pulls DMA at the sample rate from a 1 ms virtual-clock timer into a 186 ms ring; the position register advances with it and a 40 ms jitter buffer fronts the host backend. A four-second 1 kHz capture went from 10–20 dropouts to zero.
- Seamless pointer via a USB tablet taking absolute positions; captured mode remains for games.
- OHCI bounds transfer descriptors per endpoint per frame and drops missed frames rather than replaying them, which used to livelock the emulator under host load.
Speed
- Host scheduling. An
NSActivityUserInitiated | LatencyCriticalassertion plusQOS_CLASS_USER_INTERACTIVEon the TCG vCPU threads stops App Nap exiling the emulator to the efficiency cores. A guest benchmark loop dropped from 9–11 s to 3.4 s on that change alone. - TCG: a raised softmmu TLB floor (1024 entries) and a 64K-entry TB jump cache
retired by a generation counter, so a flush stays O(1) — a game covers 100k+
translation blocks and every PowerPC
blris an indirect branch. - target/ppc:
lmw/stmwexpanded inline instead of a helper thatprobe_accesses the range, and a host-FPU fast path for A-form arithmetic when FPSCR is RN with no enables and no NaNs. - GPU batching: conflicting batches ordered on the GPU with shared events rather
than
waitUntilCompletedon the vCPU thread, hybrid fences, an AGP/GART page-to-host-pointer cache, and draw vertices bump-allocated from a recycled 8 MB buffer. - Net result: benchmark loop 9–11 s → 1.95 s. Warcraft III went from 4–5 fps to around 30 fps on all-high settings at 1680×1050.
The app and the guest
- SwiftUI app driving QEMU over QMP. VMs are
.poweremupackages; importing disks and ROMs uses APFS clones. The guest screen is drawn inside the app through apoweremu-displayobject over a Unix socket with shared memory and damage rectangles, so QEMU isn’t a second Dock icon. - PowerEmu Tools — a guest agent for 10.4+ PPC, installed per user with no
administrator password: clipboard both ways, shutdown and restart through loginwindow
(
kAEShutDown/kAERestart), and an optional root clock daemon that steps errors over 1 s and slews smaller ones withadjtime. - Shared folders over a WebDAV server implementing enough of RFC 4918 for
Tiger’s
webdavfs, on a per-VM Unix socket so no TCP port is opened. - Service Hub: a mail proxy (the guest authenticates locally; PowerEmu does
implicit TLS or STARTTLS to iCloud, Gmail, Yahoo or Fastmail with an app password) and a
Web Accelerator on
10.0.2.100:7780doing TLS 1.3 and HTTP/2, WebP/AVIF/HEIC transcoding, image downscaling and 204s for trackers. - Built on QEMU 10.0.2 as patched by UTM. GPL-2.0-or-later.
Alpha, and still moving. Free and GPL, always.
The Garden
The Garden is a modern app store for Mac OS X Tiger and Leopard, and it runs on the Mac you’re sitting at. Thousands of archived programs and games from the Macintosh Garden — browsed, searched and filtered the way you’d browse anything on a Mac — with screenshots, ratings and twenty years of reviews on every item page, and a badge on every download that tells you whether it runs natively, needs Classic, needs Rosetta, or has no business on this machine at all. Press Get and it queues, downloads, verifies, unpacks whatever 1997 archive it arrived in, finds the actual application among the read-mes and installers, and puts it where it belongs. All of it over encryption bundled right in, because your Mac’s own stopped reaching the web years ago.
Shelf confidence
Thousands of archived programs and games, laid out the way a Mac lays things out: Featured on the front with New & Noteworthy straight from the site’s own feed, Apps and Games A–Z, Categories, Search, and filters to narrow the shelf down to what you’re actually after. It is the Macintosh Garden, rearranged into something you can shop.
Pages you’ve already opened stay readable when the network won’t cooperate and are revalidated the moment it will, so a second look costs nothing. And this is a native application — one universal binary covering PowerPC and Intel, comfortable in 256MB — running on the old Mac itself. No modern machine standing offstage feeding it.
Badge of honor
Every item page is a proper preview: screenshots, the description, the rating, and the reviews people have been writing about this software for twenty years. You look before you commit.
And every download on that page carries a badge computed for the exact Mac you are sitting at — runs natively, needs Classic, needs Rosetta, or won’t run here. Get is a pull-down as well as a button: it offers the sensible file first, and the menu underneath lists every file the archive holds with its size and what it runs on, so the choice stays yours. Nobody spends twenty minutes of a slow link finding out the hard way.
Get, and forget it
One press puts it in the queue, and the queue does the rest: download, MD5 check, then out comes the unpacker for whatever the 1990s wrapped it in — StuffIt, BinHex, MacBinary, Compact Pro, zip, the lot. The Garden digs through what falls out, works out which of nine files is actually the program, skips the updaters and installers and read-mes, and installs it. Mac OS 9 titles go to their own folder. Packages are handed to Installer. Software that shipped as a five-floppy set gets every image mounted and stitched back into one working application — a Saturday afternoon’s work, reduced to a progress bar.
What lands turns up in your Library with its real icon, the one the author drew, not a generic document. Open it, drag it to the Dock, show it in the Finder, or throw it out. Entries are re-checked at launch so the list never lies to you, newer versions are spotted and installed as they appear, with the count riding on a Dock icon The Garden draws by hand — and double-clicking gets you the game rather than its patcher.
Handshake, included
This is the part that makes everything above it possible. Tiger and Leopard’s own encryption stops at TLS 1.0, and the Macintosh Garden — like most of the web — stopped accepting that years ago, which is why the browser your Mac came with can’t so much as open the front page any more. The Garden doesn’t ask the system. It carries a statically linked OpenSSL 3 and libcurl 8 of its own and completes the handshake itself.
So there’s no helper Mac, no proxy to set up, no sneakernet with a USB stick. A 2005 Mac talks to a 2026 website directly, over current encryption, and asks only for the pages you actually open — no crawl, no spidering, no hammering a volunteer-run archive. There’s even a report window in the app showing you precisely what it’s about to send.
You could do all of this by hand in a browser. Here is what The Garden does instead.
| Doing it yourself | The Garden |
|---|---|
| Tiger’s browser cannot complete a handshake with the site any more, so you need a modern machine just to fetch the file. | Bundled TLS, so the old Mac talks to the site directly. |
| You find out whether something runs by downloading it and trying. | A badge on every download, worked out for the Mac you are on. |
| Unpack a StuffIt archive, work out which of nine files is the program, drag it somewhere sensible. | One button: download, verify, unpack, install, in the right place. |
| Nothing tells you a newer version exists. | Updates are spotted and installed, with a count on the Dock icon. |
| Nothing records what you already have. | A library with real icons, and one click to open or remove. |
| Every page is a fresh download over a slow link. | Pages are cached and revalidated, and still readable offline. |
- Mac
- Any PowerPC G3 or later, or any Intel Mac. One universal binary covers both
- System
- Mac OS X 10.4 Tiger or 10.5 Leopard
- Memory
- 256 MB is fine. It was built with small machines in mind
- Storage
- Whatever your installs need, plus a little for cached pages
- Internet
- Any connection. Modern TLS is bundled in, so there’s nothing to configure and no helper Mac required
- Plays well with
- Mac OS 9 for the oldest titles, and PowerEmu if you’d rather do all this on a modern Mac
- Version
- 0.3.6, alpha
- Price
- Free. MIT licensed
Reaching the site at all
- Bundled TLS. Every transfer runs through a statically linked libcurl 8 and OpenSSL 3. Tiger and Leopard’s own TLS stops at 1.0 and can no longer negotiate with the site, so the system stack is bypassed entirely.
- One thread, one curl multi handle. A thread per request costs too much on a 256 MB G3; a single handle reuses connections, DNS answers and TLS sessions.
- Persistent page cache with per-request TTLs (item pages 3 days, listings 6 h,
the feed 1 h), revalidated with
If-None-MatchandIf-Modified-Since, with offline fallback. - PowerEmu Web Accelerator client. Inside a virtual Mac it is found at
10.0.2.100:7780; on a real Mac over Bonjour with a pairing code. Pages and images go through it; downloads, form posts and the search token always go direct, so a file’s MD5 and the session are never in doubt. A Tiger G3 item page: 0.95 s direct, 0.20 s through PowerEmu — the difference is the TLS handshake. Absent, nothing changes. - A custom
NSURLProtocolputs the system WebKit on the same stack, so aWebViewcan reach the site on Tiger and shares the app’s cookies.
Store, install and library
- Featured (New & Noteworthy from
rss.xml), Apps and Games A–Z, Categories and Search. Item pages carry screenshots, the rating, reviews parsed from the site’s comments, and rows of More by author and Related. - Compatibility badges computed per download against the host: native, Rosetta, Classic, or unsupported.
- Install pipeline: MD5 verification, disk images via
hdiutil, archives through the bundled XADMaster (StuffIt, BinHex, MacBinary, Compact Pro, zip and the rest), applications to/Applications, Mac OS 9 software to Applications (Mac OS 9), packages handed to Installer. Multi-floppy sets, including headerless raw images viaCRawDiskImage, are mounted and copied out. - Launchable selection prefers the binary whose name matches the title and skips updaters, installers, read-mes and launchers; existing library entries are re-checked at launch.
- Updates compare version numbers when both file names carry one and upload dates
when neither does. The Dock icon is drawn by hand for progress and the badge, since Tiger
has no
NSDockTile.
Build
- Universal
ppc+i386, deployment target 10.4, built with Applegcc-4.0against the 10.4u SDK — Xcode 2.5 on Tiger or 3.1 on Leopard. PowerPC is-mcpu=G3 -mtune=G4; Intel is-march=prescott. - MIT licensed. XADMaster and UniversalDetector are the unmodified Universal builds from The Unarchiver 3.11.1, under the LGPL-2.1.
Version 0.3.6, and rough in spots. Not affiliated with the Macintosh Garden — just a fan with a compiler.
Captain Polliwog
Captain Polliwog is a modern WebKit browser for Mac OS X Tiger and Leopard. It brings its own encryption — OpenSSL 3 and libcurl 8, bundled in — and its own engine: WebKit 604, the one out of Safari 11, compiled from source for PowerPC and carrying the first JavaScript JIT JavaScriptCore has ever had on this architecture. On a PowerBook G4 it scores 0.345 on Speedometer 3.1 against PowerFox 26.4’s 0.189 and wins eighteen of the twenty suites. Current Wikipedia loads on a 500MHz G3 in about 53MB. YouTube goes to PowerVLC and plays smoothly at 480p. Apple.com renders.
Back on speaking terms
Two things shut your Mac out of the web, and both had to be replaced. Sites moved to encryption the system was never taught, so Captain Polliwog carries its own — OpenSSL 3 and libcurl 8, statically linked in, completing handshakes Tiger’s TLS 1.0 gave up on years ago. It fixes the waiting, too: Tiger tries a site’s IPv6 address first and sits there about fifteen seconds while it fails on a network that hasn’t got any, where libcurl tries both families at once and the page simply starts.
Then there was the engine. Captain Polliwog runs WebKit 604 — out of Safari 11,
2018 — built from source for PowerPC, with the first JavaScript JIT JavaScriptCore has
ever had on this architecture: a PowerPC backend running JavaScript as native code at 1.5 to
3.5 times the speed of the interpreter it replaces. Flexbox and grid, :has(),
modern JavaScript, WebGL and web fonts all simply work. On a PowerBook G4 that adds up to
0.345 on Speedometer 3.1 against PowerFox 26.4’s 0.189, with eighteen of the twenty
suites going to Polliwog, and current Wikipedia loading on a 500MHz G3 in about 53MB —
a fifth of the memory in the machine.
Green light, go
Point at a video and a green button appears over it. Press it and the stream goes to PowerVLC — the only VLC built for these processors, with VLC and MPlayer standing by as fallbacks — which comes up at around 30 percent of the CPU with both decoders running, h264 and aac, and audio sync measured at zero milliseconds. The copy in the page pauses while it plays, so your G4 is never decoding the same stream twice, and nothing starts until you ask — which on a machine of this vintage is less a preference than a kindness.
On a PowerBook G4 that means a full-length YouTube video at a smooth 480p, start to finish — the one-minute wall that used to cut playback short is gone. Handing the decoding to a player built for the hardware is what buys that: decode the same video inside the browser instead and the recommendation drops to 360p, where even a dual 2.3GHz G5 manages 23.4 frames a second and throws away 22 percent of them. Polliwog asks the processor what it can manage and picks the stream to match.
All the fittings
Tabs that hand their pages back when memory runs short and reload the instant you return to them, so the tenth tab doesn’t put a 256MB machine into swap. A start page with Favorites and Top Sites, the places you actually go. Reader, for stripping a page back to the article and the type you came for. Bookmarks with folders, and your Safari ones imported on the way in. Find on page, printing, saving, and the tab you closed by accident, waiting where you’d expect it.
Downloads resume, too: stop one, shut the lid, come back tomorrow, and it picks up at the byte it stopped on rather than starting the file over. Private browsing keeps no history, no cache and no record of where you went, and drops its cookies the moment the window closes. AutoFill holds your passwords, addresses and cards in your Mac’s own keychain, the one everything else on the system already trusts.
Room to read
Close, minimize and zoom share a single row with the toolbar buttons and the address bar, the way Safari has done it since 15 — one line of chrome across the top, and then the page. On a 1024×768 PowerBook screen that isn’t a styling flourish; it’s an entire title bar’s worth of article you get to keep, on every site, all day.
The rest of the window follows the same rule. Nothing blinking, nothing sliding out, nothing asking to be noticed. It looks like it belongs to the system it’s running on, and then it gets out of the way.
Your Mac already has a browser, and there is a well-loved alternative in PowerFox. Here is where Captain Polliwog differs.
| The browser your Mac came with | Captain Polliwog |
|---|---|
| TLS stops at 1.0, so most sites refuse the connection outright. | Bundled OpenSSL 3 and libcurl 8. The handshake completes. |
| An engine from 2010: missing icons, broken layouts, scripts that fail. | WebKit 604, from 2018, built from source for PowerPC. |
| JavaScript runs in an interpreter, because PowerPC never had a JIT. | A PowerPC baseline JIT, 1.5–3.5× the interpreter. |
| Slower than PowerFox on most of Speedometer. | 0.345 against PowerFox’s 0.189, winning 18 suites of 20. |
| Ten tabs and the machine starts swapping. | Background tabs release their pages and reload on return. |
| Video is a still frame and a spinning beachball. | Handed to VLC or MPlayer, which can decode it. |
| IPv6 lookups stall about fifteen seconds on networks without it. | Both families tried at once, so the page just starts. |
- Mac
- Any PowerPC G3 or later, or any Intel Mac. One universal binary covers both
- System
- Mac OS X 10.4 Tiger or 10.5 Leopard
- Memory
- 256 MB will run it — current Wikipedia loads on a 500 MHz G3 in about 53 MB. A gigabyte makes a real difference once you open a few tabs
- Storage
- Room for the app and its page cache
- Internet
- Any connection. TLS is built in, so there’s nothing to set up
- For video
- PowerVLC, the only VLC built for these processors; VLC and MPlayer work as fallbacks. Streams are resolved per processor rather than one setting for every Mac, and decode h264 and aac at around 30% CPU with audio sync measured at 0 ms
- Downloads
- Resumable — a transfer that stops picks up at the byte it stopped on rather than starting the file again
- Plays well with
- PowerEmu, if you’d rather browse from a virtual Mac
- Version
- 0.3.4, alpha
- Price
- Free. MPL 2.0
Networking
- Its own TLS. Every request goes through a bundled OpenSSL 3.5, libcurl 8.22 and zlib. The system stack stops at TLS 1.0 and cannot reach most sites any more.
- Plain HTTP goes the same way. Tiger and Leopard try a site’s IPv6 address first and wait about fifteen seconds for it to fail on networks without IPv6; libcurl tries both at once.
- One thread through a single curl multi handle, browser-level connection limits, and a disk cache that lets a repeat visit skip the network entirely.
- PowerEmu Web Accelerator client, for when it runs inside a virtual Mac.
- Current Wikipedia and DuckDuckGo load on a 500 MHz PowerBook G3 with 256 MB of RAM, in about 53 MB of memory.
The engine
- WebKit 604.5.7 — Safari 11, 2018 — built from source for PowerPC. Cross-compiled on an Apple silicon Mac in a Linux VM with a PowerPC toolchain (about 40 minutes from clean) and packaged as frameworks the browser loads, following Leopard WebKit’s structure. Built through WebKit’s CMake Mac port rather than the Xcode projects Apple used.
- It has to be a fork. Upstream WebKit removed big-endian support on August 1, 2026 (commit 232cebab), so no future WebKit will ever compile for a PowerPC Mac. This one is frozen on a branch with fixes carried back by hand.
Speed
- A PowerPC baseline JIT for JavaScriptCore — something it has never had. An
offlineasm PowerPC backend runs the LLInt as native code, with a new assembler and macro
assembler for the JIT, and the big-endian work that goes with it:
EncodedJSValuereturned tag-first from C but payload-first from JS, tag-first JSValue arguments, call frame payloads at +4, and byte-reversed loads for typed arrays. 1.5–3.5× the interpreter on micro-benchmarks. - Layout that doesn’t redo itself.
RenderLayer::updateLayerPositionsused to walk every layer in the page after every layout. EachRenderElementnow carries a four-bit generation number in spare bitfield room, marked up the ancestor chain by anything that moved and expiring on its own as the view advances the generation; the walk skips subtrees that didn’t change. Checked pixel for pixel against a full re-render viaCGWindowListCreateImage. TodoMVC-Svelte-Complex-DOM: 3532 ms → 1277 ms. - Speedometer 3.1 on a PowerBook G4: 0.259 → 0.345, against PowerFox 26.4’s 0.189. Eighteen of twenty suites now beat PowerFox; the two left are Charts-chartjs (Core Graphics path rasterization) and TodoMVC-ES5 (relayout boundaries).
What it supports
- Platform: flexbox and grid with
gap,:has(),:focus-visible, unprefixedposition: sticky, cascade layers, range media queries,:is()/:where(), logical properties, constructable style sheets; ES2017+ — classes and private members, async/await, generators and async generators, modules and import maps, BigInt; fetch, Web Timing, WebGL through ANGLE, WOFF2 via OTS, and full ICU with all 683 locales. - The browser’s own code is under the MPL 2.0.
Version 0.3.4. Still early, rough in places, and improving most weeks.
About
Cytrus Software is one person making small, honest software with a taste for the old ways — hand-built tools in the spirit of the early web. Quiet, durable, and a little bit strange.
No trackers, no newsletters, no upsells. Just software that does a thing and then gets out of the way.
If you want to say hello, you can reach me at adam.cipoletti@me.com.
Support
All three of these are free and open source, and they’ll stay that way. There’s no paid tier, no license key, and nothing here is counting you. Everything below is optional.
Give what you like
Venmo carries your note with the payment. PayPal can only carry the amount, so if you’ve written something, send it with Just send the note as well.
Or donate a vintage Mac
All three of these are built against real hardware, and the range I can test on is whatever is on my desk. If you have a PowerPC Mac gathering dust — a G3, G4 or G5, laptop or desktop, working or nearly — it would go straight into testing. I’ll pay the shipping.
Don’t ship anything before we’ve talked — I’ll cover the label and make sure it’s worth the trip first. A heavy tower coming a long way sometimes isn’t, and I’d rather tell you than leave you out of pocket. Machines that don’t boot are still interesting; say so and we’ll figure it out.
No tier buys support or a deadline — this is one person and a compiler. An email telling me you got something working is worth just as much as any of it.