Repository navigation
Sloped slabs/walls #260
Description
Activity
This is a good one also highly linked to #111
Confirming this against the schemas, because "sloped slabs/walls" is really three separate features and they're worth splitting before anyone picks one up.
Where things stand on
main:- Sloped walls — not supported.
wall.ts:36is a single scalarheight: z.number(), so a wall is a constant-height extrusion along its polyline. Two distinct asks hide here: a gable-end wall whose top follows the roof plane above it (very common, and the roof already exposes the surface frames needed to compute it — seegetRoofOuterSurfaceFrameAtPoint/clipGeometryBySegmentTrim), versus a battered wall that leans off vertical (rare outside retaining walls, and much more invasive since it breaks the assumption that a wall's footprint equals its plan polyline — openings, mitering and hosted-item placement all assume vertical faces). - Sloped slabs — not supported.
slab.ts:24iselevation: z.number(), one plane height for the whole slab. This is the one with the clearest use cases: ramps, drainage falls on flat roofs and terraces, driveways. - Sloped ground — already works. Terrain sculpting exists on the site node, so exterior grade isn't blocked by this.
If someone wants to take a piece, sloped slabs are the tractable starting point and I'd suggest that first. The narrow version is a slope vector (direction + fall) on the slab rather than per-vertex heights: the geometry generator is pure (
generateSlabGeometry), the floor-elevation system already lifts floor-placed items to the slab elevation under their footprint so it has a single place to become position-dependent, and it doesn't disturb walls at all. Per-vertex heights are the more general answer but drag in a UI for editing them.@Aymericr's link to #111 is right for a related reason worth being explicit about: that discussion is about push/pull on the Y axis, and the underlying constraint is the same one — most kinds are parametric in the XZ plane with scalar height, so vertical variation has no representation to manipulate. A push/pull gesture and a slope property need the same schema change underneath, which is why they should be designed together rather than one being bolted on.
Keeping this open, labeled
enhancement+help wanted. Happy to review a slab-slope PR and point at the systems that need to follow.- Sloped walls — not supported.
Cross-link: PR #640 implements a manually-set linear top-edge slope on walls (
endHeightOffset) — the shed-roof/knee-wall subset of this request. It doesn't close this issue (no roof-driven gable tops, no battered walls, no sloped slabs), but the geometry primitive underneath it is reusable for the roof-derived version, and I've asked over there whether we land it as the primitive first. If you're watching this issue, that PR is where the first concrete piece is happening.- addedready-for-humanNeeds human input during executionNeeds human input during execution
on Sep 12, 2026
Problem or motivation
Would be cool to be able to have sloped slabs/walls
Proposed solution
No response
Alternatives considered
No response
Additional context
No response