Skip to content

editor: add wall-mounted urinal to item catalogs - #889

Open
tripdancer0916 wants to merge 1 commit into
pascalorg:mainfrom
tripdancer0916:codex/add-urinal-catalog-item
Open

tripdancer0916 wants to merge 1 commit into
pascalorg:mainfrom
tripdancer0916:codex/add-urinal-catalog-item

Conversation

@tripdancer0916

@tripdancer0916 tripdancer0916 commented Sep 18, 2026

Copy link
Copy Markdown
Contributor

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 using the generic elliptical-shell approach from kkg-agentic-bim; 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

  1. Run bun install, then NEXT_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.
  2. Open the editor on port 3002. Create a wall, open Items → Bathroom, or search for Urinal. Verify that the thumbnail loads.
  3. Place the urinal on each side of the wall in 3D. The back should meet the wall face and the bowl should face away from it. Select a urinal and change its Y position to check mounting height.
  4. Switch to 2D. Verify that each floor-plan image faces away from its wall and occupies a 0.40 × 0.35 m footprint.
  5. Search the MCP asset catalog for urinal; it should return the same dimensions, assets, and wall-side attachment as the editor catalog.

Validation: repository-wide bun run check passed (2,295 files); editor package bun run check-types passed; MCP src/tools/place-item.test.ts passed (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

Catalog preview Floor-plan image
Urinal preview Urinal floor plan

Checklist

  • I've tested this locally with bun dev
  • My code follows the existing code style (run bun check to verify)
  • I've updated relevant documentation (if applicable)
  • This PR targets the main branch

Note

Low Risk
Catalog and static asset additions only; no changes to auth, persistence, or core placement logic beyond a new item entry.

Overview
Adds a generic Urinal bathroom fixture to the editor UI catalog and the MCP built-in catalog, with matching metadata: 0.40 × 0.65 × 0.35 m dimensions, local /items/urinal/ GLB and images, attachTo: 'wall-side', and zero placement offset so mounting height uses existing wall-item controls.

Ships committed catalog assets under apps/editor/public/items/urinal/ plus an asset README (dimensions, orientation, material slots slot_ceramic / slot_drain, regeneration and local CDN preview). A new scripts/generate-urinal.py Blender 4.5 script procedurally builds the mesh, exports model.glb, and renders thumbnail.png and floor-plan.png—no third-party models or textures.

Reviewed by Cursor Bugbot for commit 431981a. Bugbot is set up for automated code reviews on this repo. Configure here.

@pascal

pascal Bot commented Sep 18, 2026

Copy link
Copy Markdown

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant