Skip to content

Releases: claudepc42/DesktopGoose-PyGoose

v0.35 — Behavior Refactor + Prop System

Choose a tag to compare

@github-actions github-actions released this 16 Jun 03:21

Behavior module system

  • All goose behaviors extracted from goose.py into individual modules in behaviors/ — 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_falling and random_spin are 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_ForceSpawnProp in 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

Choose a tag to compare

@github-actions github-actions released this 11 Jun 15:58

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)

Pre-release

Choose a tag to compare

@github-actions github-actions released this 13 Jun 01:31

Automated build from the latest commit on main. Not stable — for testing only.

PyGoose v0.32.1

Choose a tag to compare

@claudepc42 claudepc42 released this 11 Jun 04:59

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

Choose a tag to compare

@claudepc42 claudepc42 released this 11 Jun 04:20

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 into assets/text/notepad_messages/
  • Config fileconfig.ini next 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.