v0.5.7
codewhale-hq/Codewhalev0.5.7Sep 30, 2026by github-actions[bot]
Upgrading?
Full Release Notes
**Parametric windows, the selection marked with dots, and a week of requests answered.** Windowizer arrives, the first example extension contributed by a user: windows with frame and panes from a face drawn on a wall, which open the wall and close it again. The selection is marked with dots instead of a tint, X-ray shows which edges have a face in front of them, back edges (K) are drawn dashed over the opaque model, Scale grips snap to other objects, every command says what it does and F3 opens at once. Models with thousands of mirrored components open without exhausting memory, and closing is instant. Render with Blender works in the Flatpak, IngeTrazo speaks Indonesian, and the small requests that came by email and GitHub were answered. ### Added - **Windowizer, example extension** (Extensions ▸ Example extensions ▸ Windowizer), by Bane Andreev, an architect: parametric windows from faces drawn on a wall, with rows and columns (or proportions such as `1,3,1`), frame, mullions and panes. Each window is a group tagged `IfcWindow` with its parts «Frame» and «Glass n», so the Parts panel doubles as a glazing schedule; the wall is cut through (or gets reveals when it is a single plane), **Edit window** rebuilds it in place even after it was moved, and **Erase window** closes the wall again. In all six languages. A port of Rick Wilson's classic Windowizer 3 (2004-2005). - **The selection is marked with dots** instead of a tint: selected faces carry orange dots and the face under the cursor the same dots, so a face seen from behind reads as selected too; on an orange or red face the dots turn blue (#218, @canalsecuario-blip). - **X-ray: edges behind a face fade toward the background**, while those with nothing in front keep their colour; looking down on a box you can tell whether it has a lid (#223, @canalsecuario-blip). - **Every command says what it does**, like Blender's descriptions: a short sentence in the F3 search box, in the status bar while going through a menu, and under the name and shortcut in the toolbar tooltips. It covers the main window, the sheet composer and the bundled extensions (an extension of your own can give its own with `description` or `tip=` in `add_menu_action`) (#213, @canalsecuario-blip). - **Back edges** (Camera ▸ Style ▸ Back edges, **K**): the model stays opaque and the edges hidden behind a face are drawn dashed, to see where a bar or a profile continues in a shop drawing. The dash follows each line, diagonals included. It is part of the style (so scenes and `.igz` files keep it) and has a checkbox in the Styles panel; Rotated Rectangle gives up the K and has no default key (#234, @ales-limon). - **Scale grips snap to other objects**: with a grip held, hovering an endpoint, a midpoint or an edge of another piece puts the grip level with it, so you scale «to» another object without typing the size; what is being scaled never snaps to itself (#233, @ales-limon). - **Alt+X toggles X-ray** and brings back the style you were in, with its settings (#228, @canalsecuario-blip). - **Polygon properties, example extension** (Extensions ▸ Example extensions), by Rony Leonel Janampa Monago: area, perimeter, centroid, second moments about the centroid and the model's axes, principal moments with their angle, radii of gyration and the local bounding box of the selected faces; holes are subtracted and several coplanar faces count as one section, in the document's units (#229). - **Name field in Entity Info** for the selected group or component: type and press Enter, one undo step (#214). - **Right-click ▸ Flip Along ▸ Red / Green / Blue axis**: mirrors the selection in place with one click (#178, reported by Esteban Penzo). - **Render lights in the viewport**: with Select, a click on the bulb selects the light (also in the panel's list) and Delete removes it, one undo step (#205). Moving them with M comes later. - **Preferences ▸ Keyboard shortcuts ▸ Export… / Import…**: shortcuts travel in a file to another machine, system or person, and work in any language (#142, @pacaeiro). - **Preferences ▸ General ▸ «Put the scale figure in new documents»**: without it, every new document starts empty (#221). - **Indonesian translation** (Bahasa Indonesia), IngeTrazo's sixth language (#216, #217, @Rainjalin). - **For extensions:** `window.import_igz_path(path, at=None)` and `app.import_igz` insert an `.igz` as a component without the file dialog, at the mouse or at a point (#179, requested by Georges Le Roux); `app.add_menu(title)` gives an extension its own submenu under Extensions, `app.add_context_menu(fn)` adds right-click entries, `app.add_pickable(...)` lets an extension's own objects be selected and deleted, and `group.ext` stores an extension's parameters on its groups (kept on copies and saved, apart from the BIM tag). All in `docs/plugins.md`. - **MCP bridge from a container:** the client reads `INGETRAZO_AI_HOST` to reach the bridge through a tunnel; the bridge still listens only locally (#130). ### Fixed - **Render with Blender produced no image in the Flatpak** («Python file … could not be opened»), nor in the AppImage with Flathub's Blender: the render script now travels next to the job, in a folder Blender always sees. - **A half-typed number swallowed Alt shortcuts**: Alt+1 added a «1» instead of changing the view, and repeating it reached a huge number that left the geometry with NaN coordinates. Ctrl and Alt no longer type into the value box and outlandish numbers are refused (#185, diagnosed by Alejandro Limón). - **A document with a single NaN coordinate could not be opened**: it now opens, leaves out only the damaged pieces and says so, so it can be saved repaired (#185). - **Editing a material did not change groups painted as a whole**: the loose face changed and the grouped box kept the old colour (#155, @fafecm). - **A point snapped off the drawing plane no longer flattens the shape**: filling a window opening from the midpoint of one jamb to the other's gave a «0.00 × 2.41 m» rectangle. Rectangle, Circle, Polygon and the three Arcs take the plane of the snapped points; the free cursor and the arrow locks behave as before (#206, @canalsecuario-blip). - **Snaps under the parallel/perpendicular lock** (Down arrow) now reach endpoints, crossings and alignments with corners, on oblique edges too (#209, #215, @pacaeiro). - **Rectangle locked to a square**: a single typed value is enough (#210, #212, @pacaeiro). - **Command search (F3) opens at once**: it remembers what it prepared and works out the command list while the window is idle; it draws in about 20 ms, the first time included (#211, @canalsecuario-blip). - **Shortcuts of your own on actions with «/» in their name are kept** after a restart: Push / Pull, Toggle Perspective / Parallel, glTF / GLB… were stored nested and went back to their factory keys at the next start; those already stored that way are recovered (#236, @zhang-922). - **A line locked to an axis takes a guide's height**: with Shift or the Up arrow on the blue axis, hovering a guide line the vertical does not touch gave nothing; the point of the guide under the cursor was worked out without perspective and fell metres off screen (#166, @pacaeiro). - **Closing IngeTrazo with a big model is instant**: the process stayed alive, with its gigabytes, while Python freed object after object — 27 s → 1.2 s with the model from #158 (@pacaeiro). - **Models with many mirrored copies open and draw**: every mirrored copy of a component was baked whole in memory, and the others were baked too just to read their box and silhouette. An industrial plant of 21,406 groups (6,203 mirrored, 14 million faces) went past 14.5 GB on its first frame; it now opens and draws in 9.7 GB (#158). Picking with the mouse in such a model is still pending. - **Tooltips over a colour button are readable**: in Styles and in the composer they took the button's colour as their background (#213). - **Editing the colour of a plain colour material**: the Color row of the Materials panel recolours it at once, on what is already painted too; before, it only changed a texture's tint, which a plain colour does not have. - **The colour picker is the same on every system** (Qt's own): the native one on some Linux desktops did not return the chosen colour when opened from a menu. - **Menu descriptions reach the status bar** also in the menus Qt draws by itself. ### Tested before release `scripts/release_check.sh v0.5.6.1` on a real 1,035-group model: the viewport unchanged (paint 8.28 → 8.29 ms, orbit 8.08 → 8.28 ms, buffer rebuild 32.9 → 33.0 ms), startup 0.80 → 0.78 s, opening 3.98 → 3.79 s, no leaked objects over six reopenings; 3,562 fast and 804 slow tests pass. The check caught two slowdowns before release (the NaN guard of #185 and the silhouettes of component copies), both fixed, and testing by hand with two monitors caught a window flicker on Wayland, also fixed. ### Community contributions - @canalsecuario-blip (Gabriel Rodríguez Arregin): #206, #211, #213, #218, #223, #228 - @pacaeiro (Pedro Caeiro): #212, #215 - @Rainjalin: #217 (Indonesian) - Bane Andreev: the Windowizer example extension - Rony Leonel Janampa Monago: the Polygon properties example extension (#229) ### New contributors - @Rainjalin made their first contribution in #217
Related Repositories
farion1231/cc-switch★ 147,222
A cross-platform desktop All-in-One assistant for Claude Code, Codex, OpenCode, OpenClaw, Grok Build & Hermes Agent. Only official website: ccswitch.io
rustdesk/rustdesk★ 126,545
An open-source remote desktop application designed for self-hosting, as an alternative to TeamViewer.
tauri-apps/tauri★ 112,093
Build smaller, faster, and more secure desktop and mobile applications with a web frontend.
ruvnet/RuView★ 99,049
π RuView turns commodity WiFi signals into real-time spatial intelligence, vital sign monitoring, and presence detection — all without a single pixel of video.
oven-sh/bun★ 96,338
Incredibly fast JavaScript runtime, bundler, test runner, and package manager – all in one