Skip to content
LEX
Keyboard: press / or Command K to ask or jump, backtick to open the terminal.

LEX · the pass

Order ticket

Ticket

#

From
Time
Order

Fire it

EN · DE · ES

Back to the Lab

Spatial & 3D06 / 12

numae

Your profile is a place

Status
Prototype
Period
2026 →
Role
Design and development, end to end
For
People who want a personal corner of the web, planned first for a closed launch.

Problem

Social profiles are flat lists of fields that all look alike. They say little about the person and nothing about how it feels to be there.

numae replaces the profile page with a small low-poly 3D place that belongs to one person. The social layer, where places connect to each other, is planned next.

Case study

Each person gets a place they can furnish and show. The first four development stages (D1 to D4) are implemented, and the social graph between places is the next stage (D5).

The public landing page is online. The product itself is still a prototype: the production upload and antivirus flow has not been run yet, and the plan is a closed launch of around 150 people.

Architecture

A Next.js 16 and React 19 application that renders each place with three.js. The codebase is unusually test-heavy for a prototype, with unit, integration and end-to-end suites.

Engineering decisions

  1. A place instead of a page, so identity is spatial rather than a list of fields.
  2. Low-poly style to keep scenes light enough for ordinary devices.
  3. Staged delivery (D1 to D5), with the social graph deliberately last.
  4. A closed launch before opening to everyone.

Challenges & trade-offs

Keeping 3D scenes light and user uploads safe before anyone outside the project touches it.

Verified results

  • Landing page live at numae.world
  • D1 to D4 implemented
  • ~319 unit and integration test files, 67 end-to-end test files

Status labels are factual: nothing here is presented as more finished than it is.

Stack

Links

Ask or jump

Type a question or a name. Navigation is deterministic — no chatbot.

Press / or ⌘K