# Antique Globe — `antique-globe@1.0.0`

An old parchment globe turning on a brass-and-walnut stand in lamplight, dust drifting in the beam. Loops perfectly.

A terrestrial globe from an old study: a parchment sphere inked with invented continents (drawn from seeded noise, so every seed is a new world) with a graticule, sepia coasts and ocean washes, tilted on its axis inside a brass meridian ring on a turned walnut foot, lit by a warm lamp with dust motes drifting in the beam. Choose the map's ink (sepia, blue or rose), the seed, how much land there is, the tilt, the turns per loop, the dust, the backdrop and whether the camera sways.

- Kind: object; status: published; digest sha256:810b231106765580e0cf511aedc187a8bb2d0044a77bbf70f163cd6c13a53e31
- Role: Object (3D, three.js): a warm, scholarly hero object for travel, history, geography and storytelling content.
- Implementation: three; entry `src/antique-globe.js`
- Files: https://aipixelwizard.com/registry/antique-globe/1.0.0/<path> (`LICENSE`, `asset.json`, `demo.js`, `index.html`, `src/antique-globe.js`)
- Manifest JSON: https://aipixelwizard.com/api/v1/visuals/antique-globe/versions/1.0.0
- Runnable demo: https://aipixelwizard.com/registry/antique-globe/1.0.0/index.html (open over http; it imports sibling packages by relative path)
- Dependencies (exact): `three@0.185.1` (source) — Renderer, geometry and physical materials.; `chrome-material@1.1.0` (demo) — Studio environment light, backdrop and contact shadow.; `apw-runtime@1.0.0` (demo) — Demo harness.

## Exports
- `createAntiqueGlobe({ map?, seed?, sea?, tilt?, turns?, dust? }) => { group, setProgress(progress), dispose() }` — The globe, ring, stand and dust as a group (centre at y = 2.3, radius 1.5); add it with an environment map and a light.
- `MAPS: { sepia, blue, rose }` — Paper, sea, land and ink colours.

## Parameters
- `map` (select one of sepia | blue | rose, default "sepia") — Map
- `seed` (integer 1–999, default 7) — World: The seed of the invented continents.
- `sea` (number -0.15–0.15, default 0) — Sea level: Higher drowns land, lower floods less.
- `tilt` (number 0–45, default 23.5) — Tilt
- `turns` (integer 1–3, default 1) — Turns per loop
- `dust` (number 0–1.5, default 1) — Dust
- `background` (color, default "#2a1c14") — Backdrop
- `orbit` (boolean, default true) — Camera sway

## Composition
- Inputs: Time within the loop; the map, world seed, sea level, tilt, turns, dust, backdrop and camera sway.
- Outputs: A full frame rendered in 3D with a shadow-casting lamp.
- Coordinates: The foot stands on y = 0; the globe's centre is at y = 2.3 with radius 1.5, its axis tilted about z.
- Lighting: A warm spot lamp with a shadow map, a dim hemisphere fill and a warm studio environment.
- Timing: setProgress(progress) sets the turn and the dust; frames render in any order.
- Works with: chrome-material, orbit-camera, kinetic-title, number-reveal
- The 2048 × 1024 map is drawn once pixel by pixel from three octaves of seeded 3D noise sampled on the sphere (so it has no seam or pole pinch), then inked with coasts, a graticule and the equator.

## Output and loop
- 1080×1080, 30 fps, 16 s, procedural
- Seamless loop: yes — The globe turns a whole number of times per loop, each mote drifts in sines of whole cycles and the camera sway is a sine of the loop, so the last frame meets the first.
- Verified 2026-10-06 in Chrome 154.0.8037.97 headless on Linux 7.0.0-38-generic (x64), Node 22.14.0 (WebGL 2 via SwiftShader (software)); deterministic: yes; loop check: Frame 0 vs end state (progress 1): mean |Δ| 0.0000, max |Δ| 0 of 255.

## Use it
New project: Create a WebGLRenderer with shadows, a studio environment and a warm spot light, add createAntiqueGlobe().group and call globe.setProgress(progress) each frame.

Existing project: Copy src/antique-globe.js; add globe.group to your scene with an environment map and a light.

Reuse ideas:
- Travel or history title: Sepia world, lamplight.
- Geography explainer: Blue seas.
- Storybook opener: Rose map, many islands.

## Limitations
- The continents are invented, not real geography.
- The globe has no place names or ornaments (cartouche, sea monsters).

## License
MIT. Copyright (c) 2026 AI Pixel Wizard. Released under the MIT License. See LICENSE in this folder.

Provenance: Adapted from the owner's threejs-sketches/objects-scenes/antique-globe (MIT) and rebuilt for AI Pixel Wizard in October 2026 as an original object: a seam-free seeded world map drawn from 3D noise, a tilted axis in a brass meridian ring on a turned foot, lamp light with a shadow and whole-turn motion for an exact loop.

