Materializr
Open-source parametric 3D CAD for makers — constraint sketches, solid modeling, threads, SVG & text engraving, STL/STEP export. Android, iPad, Linux, Mac, Windows. Vibe coded.
Galleriverse turns a simple floor plan into a 3D gallery anyone can walk through from a link.
DesignTypeScript · JavaScriptGitHub @PegasusXLabOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Loading the full README. The saved excerpt is shown below.
Galleriverse lets creators with no coding or 3D experience build an immersive gallery for their art. They draw rooms on a simple 2D floor plan, set each room's colours, lighting and sound, and hang artwork with titles and stories on the walls. Galleriverse compiles that layout into a 3D gallery that anyone can walk through from a shared link, on a laptop or a phone, with no account needed. The editor is the product; the 3D gallery is what it produces. Built for Hacklanta 2026 (Adobe Creative track).Read the full README ↗Galleriverse lets creators with no coding or 3D experience build an immersive gallery for their art. They draw rooms on a simple 2D floor plan, set each room's colours, lighting and sound, and hang artwork with titles and stories on the walls. Galleriverse compiles that layout into a 3D gallery that anyone can walk through from a shared link, on a laptop or a phone, with no account needed. The editor is the product; the 3D gallery is what it produces. Built for Hacklanta 2026 (Adobe Creative track).
Live: https://galleriverse.vercel.app/
| Landing page | 2D floor plan editor |
|---|---|
| 3D POV: preview as a visitor | Top-down overview |
| 3D viewer with artwork plaque | Atmosphere and lighting |
.glb models. The editor's add-object flow is coming next.#002fa7), Archivo and Geist type, and shared UI primitives across the landing page, editor and viewer.npm run predemo to verify the live production site against the full end-to-end flow (publish, tour in a new context, plaque interaction, secret edit key) and print a clear PASS/FAIL verdict before presenting. Works on Windows (cmd, PowerShell, Git Bash), macOS and Linux.Requires Node.js 24. No accounts or API keys are needed: without storage credentials, galleries and images are saved to .data/ on your disk, and accounts use a development-only session secret.
npm ci
npm run dev # http://localhost:3000, editor at /edit/local
Optional environment variables (see .env.example; real values go in your local .env or in Vercel, never in the repo):
| Variable | Purpose |
|---|---|
VULTR_S3_ENDPOINT, VULTR_S3_BUCKET, VULTR_S3_ACCESS_KEY, VULTR_S3_SECRET_KEY | Vultr Object Storage; unset = local .data/ |
AUTH_SECRET | Signs the login session cookie (32+ random bytes) |
| Script | What it does |
|---|---|
npm test | Unit tests (Vitest) |
npm run test:e2e | Browser tests (Playwright), see tests/e2e/ |
npm run predemo | Pre-demo check against live site (E2E_BASE_URL) |
npm run lint | ESLint |
npm run typecheck | Generates Next route types, then tsc --noEmit |
npm run format | Prettier |
npm run build | Production build |
The first time you run the browser tests, install Chromium with npx playwright install chromium.
The creator only ever edits one gallery document in 2D. A pure function, compile(), turns it into a SceneModel: plain data describing floors, wall segments, doorways, picture frames and objects. The 3D renderer reads only that model.
flowchart LR
E["2D editor<br/>rooms, walls, artwork"] -- store actions --> G["Gallery JSON"]
G -- "compile()" --> S["SceneModel<br/>floors, walls, doorways, frames, objects"]
S --> R["3D scene<br/>React Three Fiber"]
G -- publish --> API["/api/galleries"] --> V["Shared view link"]
compile() cuts an opening 1.2 m wide and 2.2 m high, centred on the overlap, then splits each wall into solid pieces around it.compile() has no three.js inside. It is plain TypeScript, so it is unit-tested directly, and the same tour component powers both the editor's 3D POV and the shared viewer./api/files; private records (accounts) are never served.Quang, Vic, Parth and Sergio.
Inspired by basement.studio's website (basementstudio/website-2k25). No code, shaders, models, textures or fonts were copied.
The built-in object library (public/library/) uses CC0 models from Poly Haven. Textures were resized and the files packed into single .glb files.
| Object | Author | Source |
|---|---|---|
| Classic armchair | Kirill Sannikov | polyhaven.com/a/ArmChair_01 |
| Leather ottoman | Caspian Fortune | polyhaven.com/a/Ottoman_01 |
| Painted bench | Kirill Sannikov | polyhaven.com/a/painted_wooden_bench |
| Wooden stool | Kirill Sannikov | polyhaven.com/a/chinese_stool |
| Round coffee table | Ulan Cabanilla | polyhaven.com/a/coffee_table_round_01 |
| Potted succulent | James Ray Cock | polyhaven.com/a/potted_plant_04 |
| Ceramic vase | James Ray Cock | polyhaven.com/a/ceramic_vase_01 |
| Brass vase | Rico Cilliers | polyhaven.com/a/brass_vase_03 |
| Marble bust | Rico Cilliers | polyhaven.com/a/marble_bust_01 |
| Horse statue | Rico Cilliers | polyhaven.com/a/horse_statue_01 |
| Standing photo frame | James Ray Cock | polyhaven.com/a/standing_picture_frame_01 |
| Vintage oil lamp | Monsta3D | polyhaven.com/a/vintage_oil_lamp |