diff --git a/viz/index.html b/viz/index.html index dae3201..f208122 100644 --- a/viz/index.html +++ b/viz/index.html @@ -752,7 +752,7 @@
  • Right-click anything — the everything menu. Every node carries its full settings under the right button: mute, solo, a level fader (0–2×), a trim offset, every cable it carries with its amount slider and an unpatch ×, and a nested patch to → list for laying new cables without dragging. Right-click the empty sky for the view menu. And the modifiers, for the fast hands: click mutes · ⇧-click opens the node's tab · ⇧-drag rides the level up and down · ⌥-click solos a source · ⌘-click multi-selects for grouping · ⌘⇧-click resets a node to neutral. People play differently; the instrument shouldn't care which hand you reach with.
  • Click a wheel — go inside it (mind mode). In chakra view, click any chakra's core and the camera steps into the wheel: its mandala of petals turns around your whole field of view, and that chakra's feeds circle you — drag to look around the full 360°. A vector console appears under your hands: 12 keys of that wheel's own scale (C minor pentatonic at the root, rising key by key to B hirajoshi at the crown), played by clicking, by the Q] row, or by any connected MIDI keyboard — every note runs through the world's own reverb and grit, so you are jamming inside the instrument, in that chakra's mode, while the planet plays around you. travel the spine wheel to wheel; esc steps back out. And for powerful machines, right-click the sky and set graphics to ultra ✦: every orbiting feed grows a glowing comet trail, and the orbits breathe so the trails weave slow spirals.
  • Skins — the same spine, another cosmology. Right-click the sky and cycle skin. Beyond the seven chakras there is the planes: the Seven Planes & forty-nine sub-planes of the Cosmic Physical Plane from the Alice Bailey / D.K. teachings — I Divine (white light) down through Monadic (violet), Atmic, Buddhic, Mental (where the egoic lotus sits), Astral, to VII Physical (red). The spine becomes the 49-sub-plane spectrum ladder; the side-brackets mark the Monad, the Spiritual Triad and the Personality; and every feed climbs to the plane that matches its rarefaction — the sun's own wind at the Divine, orbits and the sky's geometry at the Monadic, the great cyclic wheels at the Atmic, omen and aspect at the Buddhic, abstract thought and money-as-idea at the Mental, desire and fire and felt sensation at the Astral, and the dense body of the world — weather, quakes, the mortal rates, your own hands — at the Physical. Go inside any plane (mind mode) and its keys play a scale pitched to its altitude: airy whole-tone up at the Divine, grounded minor-pentatonic down at the Physical.
  • -
  • One Source, many Spirits, one Matter. That is the whole architecture: the Source is the world's data, the same for everyone; the Spirit is the skin — the belief system through which you read it; the Matter is the sound. Choose your spirit, and the same planet plays through it. The shelf so far, each rendered from its own published lore, literally and without frills: the Tree of Life (Hermetic Qabalah, Golden Dawn attributions — ten sephirot on three pillars, all twenty-two canonical paths, Mercury's data at Hod, the Moon's at Yesod, the body of the world at Malkut); the Lodge (from published Masonic sources only — Worshipful Master in the East, Wardens West and South, the North dark, Boaz and Jachin at the porch where your own hands stand as the candidate, the Blazing Star, the Volume of the Sacred Law as humanity's open book, and music given to the South, for Beauty holds the arts); the Hermetic ladder of the seven planetary gates, lead to silver; Yggdrasil and its nine worlds, the dwarves keeping the markets in Nidavellir; the Sufi lata'if, where the wind data literally breathes at Ruh, spirit-as-breath; and the Wu Xing, five phases in their generating ring and controlling star, the metal birds of the air routed to Metal. Right-click the sky → skin to turn the wheel of traditions. Each map stands as its true figure — the Tree as a tree, the Lodge as a lodge — and every station opens into mind mode with its own scale under your hands.
  • +
  • One Source, many Spirits, one Matter. That is the whole architecture: the Source is the world's data, the same for everyone; the Spirit is the skin — the belief system through which you read it; the Matter is the sound. Choose your spirit, and the same planet plays through it. The shelf so far, each rendered from its own published lore, literally and without frills: the Tree of Life (Hermetic Qabalah, Golden Dawn attributions — ten sephirot on three pillars, all twenty-two canonical paths, Mercury's data at Hod, the Moon's at Yesod, the body of the world at Malkut); the Lodge (from published Masonic sources only — Worshipful Master in the East, Wardens West and South, the North dark, Boaz and Jachin at the porch where your own hands stand as the candidate, the Blazing Star, the Volume of the Sacred Law as humanity's open book, and music given to the South, for Beauty holds the arts); the Hermetic ladder of the seven planetary gates, lead to silver; Yggdrasil and its nine worlds, the dwarves keeping the markets in Nidavellir; the Sufi lata'if, where the wind data literally breathes at Ruh, spirit-as-breath; and the Wu Xing, five phases in their generating ring and controlling star, the metal birds of the air routed to Metal; and the Spread — the Celtic Cross of the tarot (Waite's published layout), dealt live and never finished: the heavens in what crowns you, the deep debts and quake-roots in what is beneath you, the retrogrades in what is behind you, births and seasons in what is before you, money and fire in your hopes and fears — and your own hands in the Querent's place, because you are the one asking. Right-click the sky → skin to turn the wheel of traditions. Each map stands as its true figure — the Tree as a tree, the Lodge as a lodge — and every station opens into mind mode with its own scale under your hands.
  • @@ -2043,7 +2043,8 @@ }; function lodgeOf(key) { const k = (key || "").toLowerCase(), p = k.split(".")[0]; - if (p === "hand") return k.includes("x") || k === "hand.open" ? "boaz" : "jachin"; // the candidate at the porch + if (p === "hand" || p === "tof" || p === "touch") // the candidate at the porch + return /\.x$|open/.test(k) ? "boaz" : "jachin"; if (/^sky\.|sun_lon|_lon|zodiac/.test(k) || k === "astro.saturn" || k === "astro.mars") return "east"; // the heavens, read from the East if (["crypto","market","econ","debt"].includes(p)) return "west"; // the wages, paid in the West if (p === "audio" || /season|almanac|lifeexp|births/.test(k)) return "south"; // Beauty holds music & the arts @@ -2167,6 +2168,45 @@ return "water"; // the deep: moon, wisdom, the word } + // THE SPREAD — the Celtic Cross (Waite's Pictorial Key, 1910), dealt live and + // never finished: the ten positions as stations, the world's data as the + // cards that keep turning. The cross at the left, the staff ascending at the + // right. The player's own hands are the Querent; the retrogrades sit in + // "what is behind you". + const SPREAD = [ + { key: "present", label: "I · what covers you · the present", petals: 1, col: [255, 214, 90], pos: [0.30, 0.50] }, + { key: "crossing", label: "II · what crosses you · the obstacle",petals: 2, col: [200, 70, 60], pos: [0.44, 0.58] }, + { key: "crown", label: "III · what crowns you · the aim", petals: 3, col: [235, 235, 210], pos: [0.30, 0.14] }, + { key: "foundation", label: "IV · what is beneath you", petals: 4, col: [140, 110, 70], pos: [0.30, 0.86] }, + { key: "behind", label: "V · what is behind you · the past", petals: 5, col: [150, 120, 190], pos: [0.08, 0.50] }, + { key: "before", label: "VI · what is before you", petals: 6, col: [110, 200, 130], pos: [0.56, 0.42] }, + { key: "querent", label: "VII · the querent · you", petals: 7, col: [255, 170, 140], pos: [0.88, 0.88] }, + { key: "house", label: "VIII · your house · the environment", petals: 8, col: [90, 140, 230], pos: [0.88, 0.62] }, + { key: "hopes", label: "IX · your hopes and fears", petals: 9, col: [210, 190, 240], pos: [0.88, 0.36] }, + { key: "outcome", label: "X · what will come · the outcome", petals: 10, col: [250, 250, 255], pos: [0.88, 0.10] }, + ]; + const SPREAD_PATHS = [[0,1],[0,2],[0,3],[0,4],[0,5],[6,7],[7,8],[8,9]]; // the cross, and the staff ascending + const SPREAD_SCALES = { + present: { root: 60, scale: "major" }, crossing: { root: 58, scale: "phrygian" }, + crown: { root: 67, scale: "lydian" }, foundation:{ root: 41, scale: "minor" }, + behind: { root: 45, scale: "phrygian" }, before: { root: 62, scale: "dorian" }, + querent: { root: 48, scale: "dorian" }, house: { root: 52, scale: "mixolydian" }, + hopes: { root: 55, scale: "lydian" }, outcome: { root: 72, scale: "wholetone" }, + }; + function spreadOf(key) { + const k = (key || "").toLowerCase(), p = k.split(".")[0]; + if (p === "hand" || p === "tof" || p === "touch") return "querent"; // you are the one asking + if (/retro/.test(k) || k === "clock.deaths") return "behind"; // what recedes, what looks backward + if (/^sky\.|sun\.|_lon|zodiac/.test(k) || p === "iss") return "crown"; // what is above you + if (/quake\.depth|debt\.total|saturn|poverty/.test(k)) return "foundation"; // the deep structure beneath + if (/tension|quake\.event|pm25|aqi|inflation|hunger/.test(k)) return "crossing"; // what stands in the way + if (/births|popvel|season|fertile|almanac/.test(k)) return "before"; // what approaches + if (["crypto","market","fire"].includes(p) || k === "debt.vel") return "hopes"; // money & fire: hope and fear at once + if (p === "weather" || p === "planes" || p === "wiki") return "house"; // the world around you, talking + if (/lifeexp|astro\.moon|harmony/.test(k)) return "outcome"; // the culminating light + return "present"; // what covers you right now + } + const SKINS = { chakra: { key: "chakra", label: "chakra", word: "chakra", @@ -2202,6 +2242,10 @@ stations: WUXING, stationOf: wuxingOf, scaleOf: (k) => WUXING_SCALES[k], paths: WUXING_PATHS, paths2: WUXING_PATHS2, }, + tarot: { + key: "tarot", label: "the spread (tarot)", word: "position", layout: "map", + stations: SPREAD, stationOf: spreadOf, scaleOf: (k) => SPREAD_SCALES[k], paths: SPREAD_PATHS, + }, }; for (const s in SKINS) { const byKey = {};