Thiings.xyz
# Thiings.xyz
**Archetype:** fid **Status:** active **Description:** 3D gem visualization world - the public face of the Thing ecosystem
---
## Vision
Thiings.xyz is Portal with a beautiful face. Every interaction is a Portal command. Every object is a Thing. Every faceted stone is a gem. Users don't know they're using Portal - they just know Thiings is beautiful, intuitive, and makes sense.
**The site is practical HTML** - cards, forms, grids, search bars - like any modern web app. But gems animate in and out contextually. A hero section might feature a 3D gem world, but browsing products is familiar HTML cards. When you hover a product, its gems glow. When you filter by tag, amethyst crystals fly into the filter bar. The 3D is flourish, not friction.
When they sign up, they become Beings. End-Beings - not "consumers" but participants in the ecosystem. They ARE the system's life.
## The 10 Sacred Gems
### Visual Identity
| Gem | Color | Hex | Shape | Technical Type | |-----|-------|-----|-------|----------------| | **Onyx** | Black/Obsidian | `#1a1a1a` | Cube | `string` | | **Sapphire** | Deep Blue | `#2563eb` | Hexagonal | `string\|object` | | **Ruby** | Crimson | `#dc2626` | Octahedron | `object` | | **Emerald** | Forest Green | `#059669` | Rectangular | `array` (immutable) | | **Amethyst** | Violet | `#7c3aed` | Cluster | `array<string>` | | **Diamond** | Clear/Prismatic | `#f8fafc` | Brilliant Cut | `object` (readonly) | | **Pearl** | Cream/Iridescent | `#fef3c7` | Sphere | `string` | | **Obsidian** | Dark Mirror | `#0f0f0f` | Tetrahedron | `object` (UUIDs) | | **Topaz** | Golden Amber | `#f59e0b` | Marquise | `object` | | **Citrine** | Warm Yellow | `#eab308` | Triangle | `object` |
### Shape Rationale (Blender-friendly)
- **Cube** (Onyx): Identity is foundational, stable, singular - **Hexagonal** (Sapphire): Context has facets, can be simple or complex - **Octahedron** (Ruby): Config is multidimensional, has depth - **Rectangular** (Emerald): History stacks, layers of time - **Cluster** (Amethyst): Tags group, multiple crystals together - **Brilliant Cut** (Diamond): Precious, protected, system-generated - **Sphere** (Pearl): Content flows, organic, human-readable - **Tetrahedron** (Obsidian): Relationships point, connect, reference - **Marquise** (Topaz): Insight is sharp, focused, revealing - **Triangle** (Citrine): Location has coordinates, spatial orientation
## What Each Gem Represents
### Onyx - Identity The name. Every Thing has exactly one. ``` "onyx": "my-product" ```
### Sapphire - Context What kind of Thing this is. Its realm, its type. ``` "sapphire": "product" "sapphire": {"type": "product", "realm": "marketplace"} ```
### Ruby - Config Settings, behavior, specifications. The knobs and dials. ``` "ruby": { "price": 29.99, "currency": "USD", "in_stock": true, "variants": ["small", "medium", "large"] } ```
### Emerald - Temporal Immutable history. Events that happened. Cannot be changed. ``` "emerald": [ {"event": "created", "at": "2025-01-15T..."}, {"event": "published", "at": "2025-01-16T..."}, {"event": "featured", "at": "2025-02-01T..."} ] ```
### Amethyst - Classification Tags. Categories. How this Thing is grouped and found. ``` "amethyst": ["featured", "new-arrival", "handmade"] ```
### Diamond - Provenance System-generated. Who created it, when, version. Sacred, readonly. ``` "diamond": { "summoner": "artisan-jane", "summoner_id": "uuid...", "day": 247, "created_at": "2025-02-10T..." } ```
### Pearl - Content Human-readable substance. The description, the story, the words. ``` "pearl": "Handcrafted ceramic vase with traditional glazing techniques..." ```
### Obsidian - Relationships UUID references to other Things. The connection graph. ``` "obsidian": { "ring": "uuid-of-products-collection", "creator": "uuid-of-artisan-being", "materials": ["uuid-of-clay", "uuid-of-glaze"] } ```
### Topaz - Insight What's missing, what's clear, what needs attention. ``` "topaz": { "gaps": ["needs-photography", "missing-dimensions"], "clarity": "description-complete" } ```
### Citrine - Location Where this Thing exists in all dimensions. ``` "citrine": { "path": "/products/ceramics/vases", "realm": "marketplace", "coords": [12, 5, 3] } ```
## UI Mapping
| Thiings.xyz UI | Portal Command | Gem Queried | |----------------|----------------|-------------| | Search bar | `/xo search <query>` | All (semantic) | | Category nav | `/0 gem sapphire=<type>` | Sapphire | | Tag filter | `/0 gem amethyst=<tag>` | Amethyst | | Product page | `/0 <uuid>` | All gems rendered | | Related items | Follow `obsidian` refs | Obsidian | | "By Creator" | Filter by `diamond.summoner` | Diamond | | Sort by date | Order by `diamond.created_at` | Diamond | | Favorites | Create `obsidian` relationship | Obsidian | | Collections | Things with `sapphire=collection` | Sapphire |
## Connection Architecture
Thiings.xyz connects to Portal via:
1. **HTTPS API** - `POST /api/daemon` with `{"command": "..."}` 2. **WebSocket** - Real-time updates for 3D world state 3. **Public endpoints** - `amethyst.visibility = "public"` Things are open
End-Beings authenticate and get their own Things: - Their profile is a Thing - Their favorites are Obsidian relationships - Their collections are Things they create - They ARE Beings in the Portal ecosystem
## Example Things
### A Product ```json { "onyx": "ceramic-vase-001", "sapphire": "product", "ruby": {"price": 89.00, "dimensions": "12x12x24cm"}, "pearl": "Hand-thrown stoneware vase with iron oxide glaze", "amethyst": ["ceramics", "handmade", "home-decor"], "obsidian": {"ring": "products-ring-uuid", "creator": "artisan-uuid"}, "diamond": {"summoner": "artisan-jane", "day": 245} } ```
### A Collection ```json { "onyx": "spring-collection-2025", "sapphire": "collection", "ruby": {"featured": true, "item_count": 12}, "pearl": "Fresh designs for the new season", "amethyst": ["seasonal", "curated"], "obsidian": {"ring": "collections-ring-uuid", "items": ["uuid1", "uuid2", "..."]} } ```
### An End-Being's Profile ```json { "onyx": "collector-maya", "sapphire": "being-profile", "ruby": {"display_name": "Maya", "avatar": "..."}, "pearl": "Collector of handmade ceramics and textiles", "amethyst": ["collector", "verified"], "obsidian": {"favorites": ["uuid1", "uuid2"], "collections": ["uuid3"]} } ```
## Gaps
- [ ] Define gem 3D shapes per gem type - [ ] Implement gem color palette as swatch Things - [ ] Build Thiings.xyz frontend (Three.js / WebGL) - [ ] Create public API subset for unauthenticated browsing - [ ] Design Being onboarding flow (signup = becoming a Being) - [ ] Define "end-Being" ring/crown for Thiings users