• v1.4.0 dd831645bf

    v1.4.0 Stable

    github-actions[bot] released this 2026-09-25 23:02:33 +02:00 | 4 commits to main since this release

    🔔 3D Controller Overlay + v1.4.0

    A release about knowing what you're running and what changed. The app now tells you when it's been updated, what's new, and when a newer version is out, and it can hand you models that shipped after your first install. Along the way the UI moved to a smooth new font with full color emoji.

    🆕 "What's New" after every update

    The first time you open a new version, a short window shows that version's release notes, the same text as this page. It appears once, never on a normal launch, and not at all on a fresh install.

    If the update ships models you don't have yet, they're listed in the same window with a checkbox each (pre-ticked), so you can add them in one click. Previously, new bundled models only ever appeared if you deleted your whole models folder.

    📦 New: Bundled Models section in Settings

    Every model that comes with the app, with its status in your library:

    • Add a missing one (or Add All Missing).
    • Restore... one to its original bundled version, handy after experimenting with a model's bindings or travel. You're asked to confirm first, and your current version isn't deleted: it's moved to model_backups in the data directory, so nothing is ever lost.

    🔎 Update check (optional)

    On startup, the app asks GitHub whether a newer release exists. If so, you get a popup with its release notes, an Open Download Page button, and a Don't remind me about this version checkbox; the next release will still be announced. Nothing is ever downloaded or installed automatically.

    Turn it off, or check by hand, from Help in Settings (Check for updates on startup / Check Now). If GitHub can't be reached, nothing happens and nothing is shown.

    🏷️ The version is visible everywhere now

    • The Settings window title (so also the taskbar/dock) and the tray icon tooltip.
    • Windows: right-click 3dco+.exe → Properties → Details.
    • macOS: Get Info on the app (it used to say 1.0 for every release).
    • The Help section, as before.

    🎨 Smoother text and color emoji

    The UI font is now Noto Sans, rendered through FreeType, replacing ImGui's built-in pixel font. Text is smoother, scales cleanly (Input History's Font Size especially), and characters that used to show up as ? now render: dashes, curly quotes, arrows, check marks, and full-color emoji (Twemoji).

    ⚡ Lower CPU usage

    A performance pass aimed at keeping the overlay out of your game's way:

    • Frame cap is actually respected now. The Settings window used vsync, which quietly made the whole app, controller windows included, render at your monitor's refresh rate instead of the Frame Cap. On a 144 or 240 Hz monitor that meant 144/240 frames per second instead of the default 60.
    • Settings throttles itself in the background. While another window (your game) has focus, Settings redraws 10 times a second instead of every frame, and not at all while minimized. It's back to full speed the moment you click into it.
    • Much cheaper per-part rendering. Shader uniform lookups no longer allocate memory, and models with a shader effect no longer check every built-in shader's file on disk for every part, every frame. In testing with the 168-key keyboard model, main-thread CPU per frame dropped by about half, and by about 60% with a shader effect applied.
    • Less work switching between windows each frame (GL function pointers are no longer reloaded when they're identical), fewer blocking window-system queries on Linux, and the controller window's right-click menu only runs while it's open.

    🔧 For maintainers

    • No more manual version bumps. The version comes from the git tag at build time and flows into the app, the .exe resource, and the Info.plist.
    • Release notes live in the repo. Commit release-notes/vX.Y.Z.md before tagging: the build embeds it for the What's New window, and the release workflow uses it as the GitHub release description, so there's no more pasting.
    • Removed dead code: the per-window V-Sync setting (overridden every frame, UI already gone), recreateControllerWindow(), and a handful of functions nothing called.
    • New build dependency: FreeType (built from source in all three Docker builds; see the README's Building section for native builds).
    Downloads