Repository navigation
editor: add wall-mounted urinal to item catalogs - #889
tripdancer0916 wants to merge 2 commits into
Conversation
|
I hit an error while handling your request (Model unavailable on AI Gateway free tier: Free tier users do not have access to this model. Upgrade to paid credits at https://vercel.com/d?to=%2F%5Bteam%5D%2F%7E%2Fai%3Fmodal%3Dtop-up for unrestricted…). Please try again, rephrase, or reach out if it keeps failing. Error id: e365562c-90e2-4b03-8159-cafac31afb28 |
Aymericr
left a comment
There was a problem hiding this comment.
Thanks @tripdancer0916, a urinal is a genuinely useful gap in the bathroom catalog, and the procedural Blender generator plus asset README make it easy to regenerate. Sorry for the long wait.
A few things before this can go in:
- In-editor screenshots. The thumbnail and floor-plan images are great, but please add a screenshot or short recording of the urinal placed on a wall in 3D (both wall faces) and in the 2D plan.
- Upstream reference. The README and generator mention the "elliptical shell approach from
kkg-agentic-bim". Could you clarify what that is and whether any code or data was taken from it? If it's only an idea, I'd drop the name from the shipped README/comments, or link it with its license so the provenance is clear. - Asset hosting (on our side, not yours). Catalog paths resolve through
NEXT_PUBLIC_ASSETS_CDN_URL, so in production these files also need to be on our asset CDN. Nothing to change on your side.
CI is green. Since this adds a new visual catalog item, the final merge call is Aymeric's.
| # Urinal | ||
|
|
||
| A generic wall-mounted ceramic urinal for layout planning. The mesh is authored | ||
| procedurally using the elliptical shell approach from `kkg-agentic-bim`, with a |
There was a problem hiding this comment.
What is kkg-agentic-bim, and was anything copied from it? If it's only inspiration, please drop the reference here (and in scripts/generate-urinal.py). If code or parameters came from it, please link it and note its license.
There was a problem hiding this comment.
Thanks for the review, @Aymericr, and sorry for the confusion on point 2.
kkg-agentic-bim is a private fork of Pascal Editor that we use internally. The reference should not have been left in the shipped README and generator comment; that was my mistake. No code, meshes, textures or other data were taken from it. scripts/generate-urinal.py was written for this PR, and the only thing in common is the general technique of lofting a shell through elliptical cross-sections. I've removed the name in 9345235 and updated the PR description to match.
I'll follow up with the in-editor screenshots for point 1.
| name: 'Urinal', | ||
| tags: ['wall', 'bathroom', 'urinal', 'plumbing', 'ceramic'], | ||
| thumbnail: '/items/urinal/thumbnail.png', | ||
| src: '/items/urinal/model.glb', |
There was a problem hiding this comment.
Maintainer note: other catalog items load from the asset CDN, so /items/urinal/* has to be uploaded there before this ships, or production gets a 404 on the model and thumbnail.
The README and generator comment named an unrelated private project. The generator was written for this PR and takes no code or data from it, so describe the lofted elliptical sections directly instead. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
@Aymericr here are the in-editor screenshots for point 1. They were taken on this branch (9345235) with the urinal assets served from the local dev server through 3D, both wall faces. I placed one urinal from the catalog on each side of the same wall. On both sides the back sits on the wall face and the bowl opens away from it.
Mounting height. Changing Y in the item panel from 1.27 m to 0.45 m moves the urinal down the wall face, and it stays attached to the wall.
2D plan. The same two urinals in plan view. Each floor-plan image faces away from its wall. Could you take another look when you have time? |





What does this PR do?
The bathroom catalog has a toilet but no urinal for shared restroom layouts. Add a generic wall-mounted Urinal to both the editor and MCP catalogs, with a 400 × 650 × 350 mm GLB, a transparent catalog thumbnail, and a matching floor-plan image. It uses the existing wall attachment and mounting-height controls, and exposes separate ceramic and drain paint slots.
The mesh is procedurally authored as a shell lofted through elliptical sections; no third-party model or texture is included. The Blender generator and asset README document regeneration, dimensions, orientation, and local preview setup.
How to test
bun install, thenNEXT_PUBLIC_ASSETS_CDN_URL=http://localhost:3002 bun dev. The override serves the committed assets locally before they are deployed to the normal asset host.urinal; it should return the same dimensions, assets, andwall-sideattachment as the editor catalog.Validation: repository-wide
bun run checkpassed (2,295 files); editor packagebun run check-typespassed; MCPsrc/tools/place-item.test.tspassed (4 tests); Next.js production build passed on Node 24. The build reports a filesystem-tracing warning in the unchanged MCP SQLite store. Local browser verification covered catalog search, placement on both wall faces, mounting-height adjustment, and 2D orientation. The exported GLB bounds, material slots, and catalog parity were also checked.Screenshots / screen recording
Checklist
bun devbun checkto verify)mainbranchNote
Low Risk
Additive catalog and static assets only; no changes to placement, auth, or core editor runtime logic.
Overview
Adds a generic wall-mounted Urinal to the bathroom item catalogs so shared restroom layouts can be planned alongside the existing toilet.
The editor UI catalog and MCP built-in catalog each gain a matching
urinalentry: local/items/urinal/assets (GLB, thumbnail, floor-plan), 0.40 × 0.65 × 0.35 m dimensions, zero placement offset, andattachTo: 'wall-side'so mounting height stays on the normal wall-item controls.Asset authoring is new:
scripts/generate-urinal.pyprocedurally builds the mesh in Blender (ceramic shell + drain cap,slot_ceramic/slot_drainmaterials), normalizes bounds for flush wall placement, exportsmodel.glb, and renders catalogthumbnail.pngandfloor-plan.png.apps/editor/public/items/urinal/README.mddocuments the asset contract, regeneration, and local CDN preview.Reviewed by Cursor Bugbot for commit 9345235. Bugbot is set up for automated code reviews on this repo. Configure here.