User Tools

Site Tools


project:eyolelta

This is an old revision of the document!


Project: The Eyol-Elta Enigma

1. The Vision: Fated Gleam

The Eyol-Elta Enigma is a kinetic light sculpture that rationalises the chaotic “Gleam” force into a structured, spherical reality.

It is a digital realisation of the Eyol (the multi-eyed avian watcher of the Different World) governed by -elta (the Yivalese concept of unbending rules or fated outcomes).

In this artifact, the light does not flicker by chance; it follows the fated rules of cellular propagation. As the gliders travel across the curved horizon, they embody the “Whale dues turned as fated” – a result that was meant to be, and then, and now.

Inspired by John Conway's Game of Life and Mango's icosahedron/d20 prompt.

2. Visual Logic

2.1 2D Logic Mapping (20-Node Lattice)

The internal logic treats the sphere as a vertex-connected lattice. In this 20-point dodecahedron net, each node is linked to exactly 3 neighbours.

Seed (Asymmetric Scout):

        ( o )-( o )
        /   \ /   \        'o' = Living Cell (Gleam)
     ( . )-( o )-( . )     '.' = Dead Cell (Void)
      |       |       |    
     ( . )-( . )-( . )      Fated Rules: 
      \     / \     /             B2 / S2 (Born if 2, 
       ( . )---( . )                  Survives if 2)

The above seed produces a spiralling glider (the Fated Pulse).

   Tick 0 (Seed)            Tick 1 (Shift)           Tick 2 (Spiral)
  ( o )---( o )            ( . )---( o )            ( . )---( . ) 
   /   \ /   \              /   \ /   \              /   \ /   \       
( . )-( o )-( . )    ( . )---( o )---( o )    ( . )---( . )---( o ) 
  |     |     |        |       |       |        |       |       |   
( . )-( . )-( . )    ( . )---( . )---( . )    ( . )---( o )---( o ) 

2.2 3D Spherical Projection (The 20-Vertex Orb)

The LEDs are mapped to the 20 vertices of a dodecahedron. This allows patterns to orbit the centre core without ever hitting a physical boundary.

                .-------.           [ 3D TOPOLOGY ]
             o /    o    \ o        Each "Eye" is a
           o  /  o     o  \  o      vertex. Patterns 
           o |  o       o  | o      traverse the 
           o |  o       o  | o      lattice edges, 
           o  \  o     o  /  o      orbiting the 
             o \    o    / o        horizon in fated 
                '-------'           geometric cycles.

3. Technical Specifications

The goal is a self-contained, handheld artifact that can be 3D printed and powered by a modest microcontroller.

3.1 Hardware Architecture

  • The Brain: PIC18F series (e.g., PIC18F25K22). Sufficient RAM to store the two-state buffer for the 20-LED lattice.
  • The Lattice: A 20-LED Dodecahedron vertex arrangement (perfectly balanced).
  • The Drivers: 3x 74HC595 Shift Registers (daisy-chained). Provides 24 outputs, covering the 20 LEDs with 4 pins spare.
  • Power: 3x AAA batteries (4.5V) or a 3.7V LiPo tucked into the hollow centre.

3.2 Mechanical Construction

The orb is designed as a Hemispherical Snap–Fit assembly:

  • Two Halves: Printed in a transparent, dark or bone-like filament to contrast the Gleam.
  • Internal Chassis: A 3D-printed “core” that holds the battery sled and the PIC circuit board.
  • The Channels: Internal wire-routing slots lead from the core to the LED sockets on the outer shell.

4. Bill of Materials (BOM)

Component Quantity Notes
PIC18F25K22 (DIP or SOIC) 1 The “Seer” / Controller
5mm Diffused LEDs 20 “Eyes” of the Eyol
74HC595 Shift Register 3 Expands the PIC's reach
Resistors (220–330 Ohm) 20 Current limiting for LEDs
3D Printing Filament ~100g PLA or PETG (Conductive for “Yarn” paths)
AAA Inline Battery Holder 1 Fits in the centre core

5. Bonus: The "Yarn" Pathing (Conductive Filament)

To honour the Yarn force (the force of bonds and life lines), one may replace traditional copper with conductive filament traces:

  • Conductive Traces: The inner shell features recessed paths printed in conductive PLA.
  • Connection: LED legs are bent to press-fit against these “printed wires,” essentially “weaving” the circuit into the very skin of the Eyol-Elta.
  • Fate Realised: This method ensures the circuit is as unbending as the rules that govern the lights.

6. Premium & Esoteric Extensions

6.1 The Trifold Realms (RGB Multiverse)

Instead of a single simulation, the orb runs three independent Gleam layers (Red, Green, Blue) on the same 20-node lattice.

  • Harmonic Conjunction: When two realms overlap on a single node, colors mix (e.g., Purple/Cyan), representing a dimensional alignment.

^ Addition ^ Qty ^ Notes ^

5mm RGB LEDs (Common Cathode) 20 Replaces standard LEDs
TLC5940 or additional 595s 6 Required to drive 60 channels (20×3)

6.2 The Eyol’s Gaze (Tilt-Shift Fate)

Integrating an IMU allows the user to influence the “unbending” rules by tilting the orb, simulating a gravity well for the light.

Addition Qty Notes
MPU-6050 Accelerometer 1 Connects via I2C to PIC

6.3 The Abyssal Vertex (The Lost Dot)

Referencing the “Seeds” lore (22 dots including a lost one), a single 21st LED is hidden deep in the core, flickering asynchronously from the surface -elta.

Addition Qty Notes
3mm Warm White LED 1 The “Observer” node

6.4 The Thrum of Fate (Haptic Pulse)

A tiny vibration motor provides a tactile “thrum” whenever a glider completes a full generational cycle, making the payment of the Whale Due physical.

Addition Qty Notes
Pancake Vibration Motor 1 Driven via a simple NPN transistor

7. The Logic of -elta (C Pseudocode)

The following snippet represents the core “Fate Engine.” It scans the 20 nodes and calculates the next state based on the Yarn connections (Adjacency Map).

// The Map of Fate: Each node connects to 3 neighbors
const int yarn[20][3] = { {1,2,5}, {0,3,6}, ... }; 

void calculate_fate() {
    for (int i = 0; i < 20; i++) {
        int neighbors = 0;
        // Count neighbors in the current Gleam realm
        for (int j = 0; j < 3; j++) {
            neighbors += current_state[yarn[i][j]];
        }
        
        // Apply B2/S2 Rules
        if (current_state[i] == 1) {
            next_state[i] = (neighbors == 2); // Survival
        } else {
            next_state[i] = (neighbors == 2); // Birth
        }
    }
    // Snap-fit next_state to current_state and update Shift Registers
}
project/eyolelta.1772543465.txt.gz · Last modified: (external edit)