Release Notes
Release Notes

Release 5.8

Holly avatar
Shared by Holly • June 08, 2026

Giraffe v5.8.0 brings a significantly expanded flow system, a rebuilt Content Library with a new feature picker, and a suite of new drawing and modelling tools. This release also includes a raft of quality-of-life improvements — from project cleanup tools and a save status indicator to a faster engine and a friendlier crash experience.


✨ New features

Design Library, rebuilt inside Content Library Your saved designs now live inside the Content Library. When importing from a project, you can pick exactly the features you want using a combined map and table view — marquee-select on the map, hover highlighting, column filtering, and zoom-to-extents.

Access Design Library functions from Content Library > Import from Project.

Patch drawing tool A new Patch tool lets you draw a polygon where each corner has its own height, making it easy to model sloped slabs and wedge-shaped surfaces. Edit slab/wedge type and per-corner values in the property editor; hovering a corner input highlights the corresponding vertex on the map.

Project cleanup tools A new cleanup menu in project settings lets you bulk-delete empty draw layers, unused usages, unused flows, unused blocks, and unused scenarios — each showing a live count with a confirmation prompt before deletion. You can also reset usages to Giraffe defaults.

Context layers auto-exclude the project area New projects now have "excludes project boundary" applied by default on 3D building and trees context layers.

💅Enhancements

Saved views simplified Saved views now always capture camera, layer state, and scenarios together — no more per-item toggles or "update layers from map" buttons. The editor warns before discarding unsaved changes, shows a preview of saved layers, and surfaces views shared with your team. Noisy success alerts have been removed.

3D primitives: pitch & bearing rotation Primitive rotation can now be set using pitch and bearing (elevation + azimuth) in addition to raw XYZ angles. Toggle between modes in the property editor.

Flow inputs for usages, blocks, and flows Flow input parameters now support Usage, Block, and Flow types, each with a dedicated picker in the flow controls panel.

Flow picker Selecting a flow for a feature is now a searchable dropdown. You can also create a new flow inline — including directly from the properties panel — with an option to add it to your currently selected features.

Flow defaults Flows can now carry default property values — including usage. Set them in the new Flow Defaults editor, and the on-map generative editors (envelope, subdivisions, parking, skeleton) will respect those defaults when parameters haven't been overridden.

Other improvements

  • The status bar now shows your project's save state: a green "Project Saved" icon, a "Saving…" state while changes sync, and a red offline icon when your connection drops.
  • A new info popover next to the unit count in Urban breaks down exactly how dwelling and unit numbers are calculated
  • Parking provided/required and efficiency in Urban are now grouped by usage, so custom parking usages are counted correctly
  • Pattern book flow node and app have been reworked
  • Multi-geometry support added in Giraffe Nodes
  • The envelope block form gains a configurable Simplify Tolerance setting
  • Apply-usage flow node: the usage input is now optional, defaulting to each feature's own usage — so one node can restyle mixed-usage feature sets
  • Merge lines command combines selected lines into a single multi-line feature
  • Feature table: numeric columns respect precision settings, area columns round sensibly, and empty columns are hidden by default
  • Measurement warnings in the status bar are now clickable — click to select the offending features so you can find and fix them
  • Pressing Escape while drawing a project boundary now asks for confirmation before discarding your work
  • If flow examples fail behind a corporate firewall, the error now tells you exactly which domain to whitelist
  • Engine recalculations triggered by UI changes are now batched, making the app noticeably snappier on large projects
  • If you sign in via a different identity provider than your account already uses, you're now guided through a clear flow to switch your login method
  • "Show all of my projects" is now hidden when you only belong to one workspace
  • Clicking inside nested enclosed regions now selects the innermost shape
  • The project grid can no longer be edited while a block is open, preventing conflicts; a warning is shown instead

🛠 SDK updates

  • Workspace API — new functions for approved apps: fetchWorkspaceDetails, updateWorkspaceDetails, getProjectBundle, and createRawSection (single and bulk)
  • evaluateFeatures stacking — output options now resolve stacking (_baseHeight, _height, _stackOrder) in one call, removing the need for a separate stackFeatures call. Polygon winding requirements are now documented.
  • Lens style validation — new validateLensStyle helper returns a list of problems in a lens style object
  • Lens table control — embedded apps can now set lens table mode via the SDK layout API
  • App credentials & user data — new fetchAppCredentials, fetchCredentials, and setUserData functions
  • App isolation & permissions — each embedded iframe app now gets its own RPC dispatcher (no cross-app crosstalk) and runs under a per-app permission model
  • Layer content accessgetLayerContents now serves features from already-loaded map layers (with optional lens filtering); project layers resolve by more ID forms; activateLensLayer throws a clear error when the layer doesn't exist
  • Concurrent-safe user data — per-app user data writes are now row-locked so concurrent SDK apps can't overwrite each other; size limits raised

🐛 Bug fixes

  • Subscription Screen - The subscription/payment screen now works correctly on small windows
  • Published apps — publishing a project now snapshots each embedded app's URL and logo so viewers see them without needing authentication
  • Flows: recursion — flows containing loops no longer misclassify nodes that take an external input and feed an external output
  • Straight skeleton: holes — straight-skeleton generation now correctly handles polygons with holes
  • Cut & Fill: Mapbox terrain — the terrain mesh offset slider now works with Mapbox terrain; terrain can be enabled for any project boundary shape
  • Crash screen — unrecoverable errors now show a friendly crash screen instead of a blank white page
  • Spaces: left drawer restored — the queried-feature drawer is available again in Spaces; the disableLensSelectionDrawer option now also disables the black selection outline on the map
  • Oversized selections — creating projects from, or importing, large lens selections no longer fails; geometry is automatically simplified before saving
  • Lens table filters — filters no longer break when a filter group is empty, has no operator, or contains a geometry filter
  • Selected-only mode — selection highlighting in the lens table is restored when "selected only" mode is active