Releases: claudepc42/DesktopGoose-PyGoose
Release list
v0.35 — Behavior Refactor + Prop System
Behavior module system
- All goose behaviors extracted from
goose.pyinto individual modules inbehaviors/— each with its own state, stage enum, constants, and logic - Core loop is now clean dispatch; behaviors are self-contained and independently readable
- Override slot pattern: behaviors influence core systems by writing to neutral-default attributes that the core reads blindly — no behavior identity checks anywhere in core code
- Foundation for new behaviors going forward
New behavior: Carry Prop
- Goose walks offscreen and returns with a knife in his beak
- Wanders for a while carrying it, then either places it carefully on the ground or transitions to the next task and drops it mid-stride 0.7s into the new walk cycle
- If a knife is already on screen, picks it up instead of fetching a new one
- Smooth swap: heading to pick one up while still carrying another — drops at feet right before grabbing the next
- Spinning drop when moving, straight drop when stopped
Prop physics
- Gravity, bounce, friction, angular velocity — props can fall, tumble, and settle
launch_prop_fallingandrandom_spinare shared helpers — all future prop drops use the same system automatically
Prop design mode
- Dev debug tool for iterating new prop visuals before implementing their behavior
- Variant panel: multiple shape/size configurations rendered side by side, active variant highlighted
- Compass ring: 8 reference geese facing every cardinal and diagonal direction — checks how the prop reads at any angle
- Shadow previews: prop rendered at beak height and at ground level to tune shadow scale and opacity at both extremes
- Sine wave Z test: prop floating continuously through its full Z range so shadow behavior can be checked in motion
- Flip button: mirrors the entire layout to the opposite side of the screen to catch left/right asymmetry
- Activated via
DEV_ForceSpawnPropin config.ini
Visual
- Fake sleep eye adjusted to three-quarters open
Task weights
- Carry Prop: 2/18 → 3/18
- Collect Notepad: 3/18 → 2/18
Linux build is untested.
v0.33
PyGoose v0.33
Performance — before and after
The goose used to consume ~12.5% of a CPU core constantly on our low power testing PC, regardless of what it was doing. Now typical mixed sessions sit well under 1% or 2% of total system CPU on our low power testing PC. This has been addressed across several targeted optimizations:
| State | Before (single core) | After (single core) |
|---|---|---|
| Sitting / sleeping / idle | ~10.5-12.5% | ~0.5% |
| Mixed normal use | ~12.5% | ~5–8% |
| Running / charging | ~12.5% | ~9–11% |
What was done:
- 60 Hz render / 120 Hz simulation decoupling — physics still runs at 120 Hz but the screen only repaints at 60 Hz
- Identical-frame skip — when the goose hasn't moved and nothing has changed, the repaint is skipped entirely. Sitting and sleeping now cost almost nothing
- Music PCM cache — the background music was being decoded from MP3 on every loop, costing ~2% of a core constantly. It's now decoded once on first run and cached as a WAV file
- Render object caching — pens, brushes, and Qt enum lookups are cached instead of rebuilt on every draw call (~20% off render cost)
What's new in 0.33
Multi-window notes and memes
The goose now keeps up to 2 notepad windows and 2 meme windows on screen at the same time. They no longer disappear when he goes to fetch another one.
Eviction drag
When 2 of a type are already up and the goose wants to bring another, he walks over to a random existing window, grabs it by the edge, and drags it back offscreen before fetching the new one.
Smarter placement
Windows are dropped with more spread across the screen — further from the edge, more vertical range. The second window of a type gets an extra messy offset so they overlap but aren't neatly stacked.
No more repeated first meme/note
The meme and notepad decks now persist across windows in a session, so the goose cycles through all your content before repeating anything.
Notes fetched more often
Notepad delivery is now 3× more likely in the task rotation.
macOS fixes
Click-through overlay
The overlay wasn't properly passing mouse events through to the desktop on macOS. Fixed by calling setIgnoresMouseEvents_ on the NSWindow directly after launch.
Mouse stealing
The goose can now actually steal your mouse on macOS once Accessibility permission is granted. Previously the steal logic ran but had no effect.
macOS one-file build
The macOS release is now a single binary. The previous one-folder build required approving every dylib individually through Gatekeeper — one file means one approval.
Startup prompts
PyGoose now tells you on launch if pyobjc-framework-Quartz is missing (pip install pyobjc-framework-Quartz) or if Accessibility permission hasn't been granted yet. The goose still runs without either — mouse stealing just won't work.
Linux build is untested.
Dev Build (latest main)
Automated build from the latest commit on main. Not stable — for testing only.
PyGoose v0.32.1
PyGoose v0.32.1
First multi-platform release. No feature changes from v0.32 — this release adds macOS and Linux builds alongside the existing Windows exe.
Downloads
| File | Platform |
|---|---|
PyGoose-v0.32.1-windows.zip |
Windows 10/11 |
PyGoose-v0.32.1-macos.zip |
macOS |
PyGoose-v0.32.1-linux.tar.gz |
Linux |
PyGoose-v0.32.1-python-source.zip |
Any platform with Python 3.12+ |
Features
- Procedural goose animation — walk, run, crawl, sit, idle
- Watches your cursor, follows you, sneaks up and steals your mouse
- Drops passive-aggressive notepad messages and memes on your screen
- Tracks mud across your desktop
- Sound effects — honks, bites, footsteps, background music
- User-customizable memes and notepad messages
- ESC hold to quit
Known issues
- ESC quit is partially unreliable in the exe build
- macOS and Linux builds are untested — first automated build for these platforms
PyGoose v0.32
PyGoose v0.32
A Python/PyQt6 desktop goose that wanders your screen, steals your mouse, and leaves passive-aggressive notes. This is the first packaged Windows release — no Python installation required.
Download
Download PyGoose-v0.32-windows.zip, extract it anywhere, and run PyGoose.exe.
Features
- Procedural animation — fully rigged goose with walk, run, crawl, sit, and idle poses
- Autonomous behavior — wanders, watches your cursor, follows you around, sneaks up, and pounces
- Cursor theft — grabs your mouse and drags it somewhere else, honking triumphantly
- Notepad messages — types passive-aggressive notes into fake Notepad windows and drops them on your screen
- Meme drops — spawns image windows you have to deal with
- Footprints — tracks mud across your desktop while running amok
- Sound effects — honks, bites, footsteps
- User-customizable content — drop your own images into
assets/images/memes/and text files intoassets/text/notepad_messages/ - Config file —
config.ininext to the exe controls goose speed, volume, and more
How to quit
Hold ESC until the progress bar fills — the goose will be evicted.
Known issues
- ESC quit is partially unreliable in the exe build; investigating in a future release
- Windows only for now (macOS and Linux planned)
Requirements
None. Everything is bundled. Extract and run.