NOTE: The text below was AI generated and has not been manually fact-checked. In doubt, please consult the original video.
- Attendees: Gregory Casamento (Greg), Joe (NextBSD/pkgdemon), Lars
- Duration: ~2h45m
- Video: GNUstepOfficial 2026 06 13 - GNUstep Web browser, NextBSD!!!
Greg demonstrated Scoremaker, a music notation app based on his work on MusicKit.
- Parses score files and renders sheet music using the NeXTSTEP score format
- Translates score files to MIDI, pipes output to Timidity or FluidSynth
- The score parser was handwritten by Greg — AI doesn't know the score format
- The note rendering view was AI-assisted ("vibe coded") due to high complexity
- Runs on both macOS and GNUstep/Linux
- Currently has an AV MIDI player but it doesn't integrate from Scoremaker yet
Greg showed several apps created primarily through AI assistance:
- Billiards (pool game) — AI-generated, looks almost exactly like the original NeXTSTEP game. Greg wrote it "in an afternoon" vs. what would have taken a week.
- StepDown — a Markdown editor for GNUstep (alternative to MacDown). Not fully MD-compliant but handles most features including image imports. No full WebKit dependency.
- Uses Codex (command-line AI tool on macOS) for generating code
Key discussion points on AI in open source:
- AI-generated code can be extraordinarily difficult to understand — works but poorly structured
- Greg's PhD focus is AI — he's pushing to see how far it can go
- Projects split on AI policy: Linux kernel embraces AI-assisted commits; Flatpak completely bans AI; rsync's original developer (Andrew Tridgell) took back over and uses AI for security fixes — drawing backlash
- Risk of falling behind: Projects that reject AI may get superseded by those that embrace it
- Greg's concern: GNUstep already missed the boat once (following GNOME specs instead of innovating), becoming a "submarine project" — used everywhere but uncredited
- Healthy balance: Human review of AI output is essential. "The only bad vibe coding is when you don't know programming at all and trust the AI 100%."
Greg showed a UIKit implementation for GNUstep:
- Based on a project started years ago, revived with AI
- Uses a ZIP file format referencing UIKit objects: UIWindow, UIViewController, UITextField, UIButton, UISlider
- Decodes ZIP and translates to AppKit widgets or direct implementations
- Not a stepping stone to Swift integration — it's purely Objective-C UIKit
- Good for early prototyping, then developers can refine
- Goal: leverage GNUstep's AppKit/Android cross-platform capabilities
Big demo — a working web browser for GNUstep using a Chromium Embedded Framework (CEF) clone:
- Application called "Netstep" (suggested rename: NeXTCape — Netscape + NeXT)
- 98% source-code compatible with upstream CEF/Chromium
- Only difference: a CFRunLoop timer integration in main.m (CEF needs a run loop, samples the viewport)
- Currently lacks deep JavaScript integration
- Build time: ~15-30 min on Greg's machine (16 cores, 32GB); ~45-60 min on 2-core GitHub runner
- Most code was hand-written by Greg; AI used only to debug a recursive crash on startup
- Uses a Gorm (GNUstep Interface Builder) file with a custom XIB and embedded web view
- Code is in libs-WebKit-CF in GNUstep repositories
- June was a polish month — no major new features
- probonopd contributed many fixes, especially menu performance (switching between apps now instant vs. multi-second delays)
- Ghost title bars with compositing — 90% fixed, 10% still showing
- Goal: get a native browser into Gershwin ISOs so users can download AppImages
- GitHub release limit: 2GB per ISO — can't ship full Chromium
- Lars looking at Greg's CEF solution as a faster path than upstream WebKit
- Not focused on Wayland — solving the same problems from scratch isn't exciting. D-Bus global menus don't have Wayland protocols anyway.
Greg's vision: a native GNUstep display server using Opal replacing X11/Wayland:
- Opal is almost fully fixed — 2 issues left: terminal app rendering, menu glitchiness
- Would let AppKit apps run without X11 — X11 apps would use something like XQuartz
- GSPS (GNUstep PostScript interpreter) — a PostScript interpreter written in Objective-C using NSArray as a stack
- Could enable print preview for GNUstep (GNUstep generates PostScript natively)
- Covers Display PostScript history: NeXT's DPS was abandoned for security (Project Akira proved you could root a NeXT through DPS)
- Reference books: Green Book (PostScript language), Red Book, Blue Book (Display PostScript — Greg has a copy)
- Fixed NSTableView view-based cell layout — extracted layout to separate method, called conditionally
- Previously allocated memory for view-based cells unconditionally, wasting resources
- Fixed Gorm (Interface Builder) issues: ZIP reading, table editing, general tightening
- Considering factoring ZIP creation out of Gorm into a standalone framework/library
- libs-xcode exists and is described as "an IDE without a GUI"
- Ycode would be a GUI on top of libs-xcode — started as an experiment
- Debate: should Ycode be a separate app or merge into Project Center?
- A VS Code plugin for GNUstep is also being considered
- Greg worried about internal competition between IDEs
- Lars suggested Ycode could open both Xcode projects and Project Center projects, with Gorm functionality built in
- Gorm has been largely refactored into frameworks (GormCore, IB library, ObjC header parser) — reusable by Ycode
- Xcode lost palette support — Greg wants to keep that capability
Joe's presentation was a highlight. NextBSD is a revival of the 2015 NextBSD project (Jordan Hubbard et al., sponsored to port Mach+launchd to FreeBSD. Later came ravynOS before switching to XNU/Linux).
- IOKit replacing devmatch — automatic hardware detection via kernel registry
- Kernel extensions (kexts) instead of FreeBSD KLDs — converted using Apple's cext from Leopard, adapted by Claude AI
- No rc.d whatsoever — all services run under launchd + Mach
- 100% binary compatible with FreeBSD — can still
pkg install
- syslogd, notifyd, mDNSResponder, kextd, hostnamed, getty, configd
- AppleSystemLogger, IPConfiguration (Apple's DHCP, not FreeBSD's)
- DiskArbitration, mDNSResponder
- UnionFS + pivot_root — something FreeBSD itself cannot do
- Fully rewritable live image — all RAM used as disk (8GB RAM = 8GB available)
- Kernel modifications for proper pivot_root (utilities don't think they're in chroot)
- Intel Wi-Fi, Intel Graphics, Intel Ethernet
- Radeon Graphics, AMD Graphics
- Legacy Nvidia GPUs (in progress), New DRM Nvidia DRM kext (planned)
- Each kext bundles firmware + license + driver
FreeBSD's problem: can't autoload GPU drivers, must hardcode in rc.conf, can't have multiple Nvidia packages. NextBSD's IOKit picks the right driver based on device IDs — no configuration needed. Built-in fallback mechanisms (unlike GhostBSD's Xconfig or NomadBSD's initGFX which hack around this in userspace).
- Three-minute cross-build of FreeBSD kernel on Ubuntu 24.04 Linux host in GitHub Actions
- QEMU + KVM smoke tests in CI — boots real ISO, runs hundreds of tests for launchd and Mach
- Daily sync from FreeBSD 15.0 upstream — auto-picks up CVEs, rebuilds everything
- Multiple repos: kernel, kernel modules (kexts), FreeBSD compat (pkg), userland (launchd/Darwin stuff)
- Gershwin is loading — libs-base ACPI detection issue causing file viewer crash (needs fix)
- Joe expects a bootable Gershwin-on-NextBSD ISO by July 2026
- Upgrade mechanism still being designed (FreeBSD packages write to /etc, /usr/lib — can't just tar-overwrite)
- Entirely AI-driven — "this entire effort was totally vibed"
- Joe uses Claude Max ($100/month) — Claude makes every commit, credited as "pkgdemon and Claude" on each one
- Workflow: build plans → refine → tell AI "go work on this ticket until CI passes" → merge
- Thinking about donations/GitHub Sponsors to recoup AI costs
Greg is learning VHDL (via GHDL) with the goal of building a NeXT Cube on an FPGA:
- Someone recently built an Apple Lisa on FPGA — proof of concept
- Greg wants a faithful hardware implementation (not emulation)
- Would fit in a reproduction NeXT case — "this NeXT machine leaves my possession when I'm dead"
- Has a real NeXTstation purchased from UMD for $75 (Steve Jobs gifted 500 NeXT machines to UMD — they were everywhere on campus)
- Previously sold a NeXTcube for $3,000 when unemployed
- Low attendance discussed — Fred usually arrives late, leaves for dinner
- Reddit posts get many views/likes but nobody joins
- Possible causes: 3-hour length too long, nice weather (summer), too public
- Lars suggested more descriptive video titles and custom thumbnails to draw viewers
- Channel: 212 subscribers, ~350-480 views per video
NOTE by probono:
- Try a different day of the week? E.g., for me Fri + Sat are often impossible to join
- Publish written summaries/articles (e.g., similar to this one)?