Optical Chromatic Memristor Neuron

A buildable DIY guide — a synapse whose weight is written by light, and whose inputs are encoded by color. For ALMAWARE / Eran neuromorphic R&D. Built for Iddo, 2026-06-24. Honest tiers: working-today → real optical memory → chromatic.

1 · The idea in one breath

A neuron computes y = f( Σ wᵢ·xᵢ ) — a weighted sum of inputs, then a threshold. We make it optical + chromatic:

So: colored light in → each color weighted by its own light-set memristor → currents sum → neuron fires if the sum crosses threshold. Color is the address; light is the signal; the memristor is the memory.

R LED ─▶[red filter]─▶( w_R )─┐ G LED ─▶[grn filter]─▶( w_G )─┤ Σ photocurrents ┌─ threshold ─┐ B LED ─▶[blu filter]─▶( w_B )─┼──────▶ [transimpedance op-amp] ──▶ [comparator] ──▶ OUT (fire / no-fire) │ (each (w) = a light-set optical-memristor / photoconductor cell)

2 · The honest tier ladder

Each tier is a real, finished milestone. Climb only as far as you want — Tier 0 already works and teaches the architecture.

TIER 0 Optical-chromatic perceptron — works today, ~$25, no exotic materials

Weights = LDR photoresistors behind color filters. Not a true memristor (no long-term memory — you set weights by hand), but a genuine optical, chromatic, analog weighted-sum-and-fire neuron. This is your proof-of-concept and test rig for everything above it.

TIER 1 Real optical MEMRISTOR synapse — Persistent Photoconductivity (ZnO)

Replace the LDR with a cell that remembers. ZnO (and some oxides/perovskites) show Persistent Photoconductivity (PPC): a blue/UV pulse raises its conductance and it stays up for minutes–hours in the dark = an analog, multi-level, light-written weight. Reset with heat or red/IR. This is the genuine "optical memristor / optoelectronic synapse" — well documented in the literature, DIY-able with care.

TIER 2 Chromatic multiplexing — the prism / cut-stone

One white input beam through a prism or cut crystal fans into a rainbow; each color lands on a wavelength-matched synapse. Now a single beam's spectrum carries many weighted inputs at once — true "chromatic weights" (your cut-stone idea, made literal).

TIER 3 Array + optical learning

Tile the neuron into a small crossbar; implement a learning rule by firing write-pulses of light to potentiate/depress weights based on output error → a perceptron that trains itself with light.

3 · Tier 0 — build the working neuron (start here)

Parts (~$25, all hobby-grade)

PartQtyRole
5 mm LEDs — Red, Green, Blue3Inputs xᵢ (brightness = input value)
LDR / CdS photoresistor (GL5528)3Weights wᵢ (resistance = weight)
Color filter film (R/G/B gel, or colored cellophane)3Chromatic selectivity per synapse
LM358 op-amp1Summing / transimpedance amplifier (Σ)
LM393 comparator + 10k trimpot1Threshold → fire/no-fire
Resistors (1k–100k), breadboard, 5 V supply, output LEDGlue

Build steps

  1. One synapse first: shine the Red LED through the red filter onto an LDR. The LDR + a fixed resistor form a divider; its current into the summing node ≈ x_R · w_R. Tune the LED brightness (input) and the partnering resistor (weight).
  2. Three colors: repeat for G and B. Mount each LED→filter→LDR in a short opaque tube (a straw painted black) so colors don't cross-talk. Optical isolation is the #1 thing that makes or breaks it.
  3. Sum: tie all three LDR outputs to the LM358 inverting input (virtual-ground summing amp, feedback resistor R_f). Output ≈ −R_f·(x_R w_R + x_G w_G + x_B w_B).
  4. Fire: feed the sum to the LM393; set the trimpot threshold. Output LED lights when Σ crosses it = the neuron "fires."
  5. "Train" by hand: adjust each weight (series resistor or filter density) until the neuron fires only for the color-pattern you want (e.g., "fire on lots of red + a little blue"). You've built and trained an optical chromatic perceptron.

4 · Tier 1 — the real optical memristor (ZnO persistent photoconductivity)

Why this is the real thing: a memristor must remember its conductance. ZnO's PPC gives you exactly that, set by light: blue/UV pulses = potentiation (weight ↑, persists), red/IR or gentle heat = depression/reset. Multi-level and analog = a real synaptic weight.

DIY ZnO synapse cell

  1. Electrodes: make interdigitated electrodes (IDE) — two comb-shaped contacts ~0.2–0.5 mm apart on glass or bare FR4/PCB (etch a comb, or use silver paint / a fine gold-leaf comb — ties to your silver-leaf work).
  2. ZnO film: bridge the gap with ZnO. Easiest DIY routes, low-tech first:
  3. Write/read: READ with a small DC bias (measure current = weight). WRITE potentiation with blue/UV LED pulses (385–405 nm); conductance climbs and persists. ERASE with heat or longer-wavelength light. Plot conductance vs. number of light pulses → your synaptic potentiation curve.
  4. Drop this cell in place of the Tier-0 LDR. Now the weight is written by light and remembered — a true optical memristor neuron.
Safety: 385–405 nm is near-UV — never look into it, wear UV-blocking glasses, keep exposure short. Anneal in ventilation. Treat the hotplate/UV as the two real hazards here.

Going chromatic (Tier 1→2)

One material rarely answers all colors. Two honest paths to chromatic weights:

5 · Measuring & "thinking" you can show

6 · Honest verdict

Ties into your existing R&D: silver-leaf / Ag₂S memristor (electrodes), the DIY neuromorphic crossbar array, the FPGA neuron-routing fabric, and the chromatic-weights / cut-stone optical idea. Low-tech-first, build-to-a-standard. — Start with Tier 0 this weekend; it's the whole architecture in your hands for the price of lunch.