Squeeze is currently in Beta. Have feedback? We'd love to hear it.
Use the Squeeze app to generate compliant apartment layouts from a building massing. The app fills each residential floorplate with your apartment mix. It derives a corridor spine, fans party walls from the corridor to the facade, sizes units to the mix (biggest types on external corners), then bakes them as sections.
Full documentation coming soon!
Squeeze is currently in beta. We'd love your feedback as we continue refining it.
How to add the app
Open the app store and search for Squeeze Beta.
Click "add" to Add it to your project.
Click the app icon to open the Squeeze app
In Giraffe v6+, add the app to a panel.
Set up your project to work with Squeeze
Before using Squeeze, your project needs three elements, all with property Squeezed=true:
A Residential Geometry (the building massing)
A Core
A Corridor
Untagged? Select the sections on the map and use the Add squeeze: true to selected button.
Manual corridor spine (optional)
Draw a line with usage Corridor across a residential building and tag it squeeze: true and corridorOverride: true. If it intersects the floorplate it replaces the auto-generated spine for that building:
The line is the corridor centerline; its offset is applied both ways (corridor width = 2 × offset; no offset → the corridor width setting).
The drawn line is used verbatim — never truncated or extended. It may hug a facade (single-loaded corridor); where it runs closer to the facade than the corridor needs, expect sliver units to be culled.
Without corridorOverride: true a corridor shape is treated as an obstacle block instead (cut around, not routed along).
A polygon tagged the same way (usage Corridor, squeeze: true, corridorOverride: true) is used verbatim as the corridor — any outline, varying width, lobby bulges, splayed ends. No offset is read; a centerline is still derived from it for the fan direction and dimensions.
Core-driven (point block, no corridor)
Select a squeeze-tagged core and hit ⊙ Core-driven (top right), or tag it coreDriven: true by hand. That building then gets no corridor at all:
Apartments fan from the core's own ring straight out to the facade, wrapping it once. No spine is derived and apartment depth is ignored — the depth is whatever the core-to-facade gap gives you.
The core is the band's inner edge, not an obstacle: it isn't cut around and never eats strips. Other cores in the same building still behave as obstacles.
Nothing is drawn, counted or baked as corridor — the core's area is core, the rest is residential. Dimension strings are corridor-based, so they're off for that building.
No-ortho party walls (per plate)
Select a residential plate and hit ∠ No-ortho (top right), or tag it noOrtho: true by hand. Its party walls then stay the raw fan rungs — straight from the corridor/core edge to the facade, no squaring to the corridor normal and no kink. Use it on splayed or curved plates, where squared walls fight the geometry. The ortho kinks setting below stops applying to that plate; every other building is unaffected.
Mix
Hydrated from the project's Residential usage (dwellingMix) by default; use the source usage dropdown to hydrate the mix from any other project usage instead. Edit target %, area (incl. balcony) and min frontage width below. Units are re-labelled by their final area; a unit narrower than its type's min width is flagged (red dashes).
Output
Bake n unit(s) writes apartments, corridor and balconies to the squeeze layer. Baking is disabled while an example plate is shown.
Draw your Massing
Go to Drawing Tools > Residential and draw your building form(s) Use Alt + drag to copy and rotate a shape Hold B to set a base point for moving, or S to snap to a node Use the selection arrows to manipulate the form's edges
Add a Core
Toggle T to switch between 2D and 3D view Go to Buildings > Core Draw a core at an approximate size, then resize and reposition as needed Hold Alt and drag to copy a core to another building
Add the elements to Squeeze
Select all the massing, core, and corridor elements you've drawn Add the selection to the Squeeze app
Squeeze will identify:
Grey areas indicating cores
Apartments generated across the building typologies
Balconies (default size shown, fully configurable)
Configure your Target Mix
In the Squeeze settings, you can adjust:
Apartment Mix – set the percentage split for each typology (e.g. reduce studios from 20% to 5%, increase one-beds, two-beds, etc.)
Add Typologies – add additional unit types (e.g. four-bed) if needed
Minimum Area – set the minimum square meterage per typology
Minimum Width/Frontage – set the minimum frontage width per typology
As you adjust these numbers, the generated layout, unit yield, and mix percentages update in real time.
Adjust Cores and Corridors
Reposition cores to suit daylight, views, or usable floor area — drag to the edge of the building or split into side cores where needed Use Alt + drag to duplicate a core across multiple buildings Draw a Corridor (via the Squeeze app or Drawing Tools > Corridor) to connect cores and bring daylight to lobbies Set corridor width (e.g. 2m) Use the Stack Order setting to bring the corridor layer above or below the massing for easier editing Reposition and duplicate corridor sections with Alt + drag
Check and Refine the Layout
As you adjust the design, check for:
Daylight to lobbies
Target mix accuracy
Frontage widths (Squeeze will indicate if a unit is narrower than intended once morphed to the massing)
You can also add supporting spaces (e.g. a service cupboard) by drawing a section — this will deduct area from adjacent apartments automatically.
Adjust balcony and unit boundaries by dragging the arrows/nodes on each element to increase, decrease, or remove a zone.
Bake the Design
Once you're happy with the layout and it meets your compliance targets (minimum areas, balcony sizes, etc.), click Bake
Baking converts the generated Squeeze layout into native Giraffe geometry, moving it from the Squeeze layer into your project layers so you can continue refining, analyzing, or documenting it as normal.
After baking, you can:
Move or delete individual elements (corridors, balconies, units)
Increase the number of levels
View unit breakdowns (e.g. total apartment count and typology locations) in the Urban tab