Salta al contenuto principale

Adder a 4 bit basato su Wireworld (Cellular Automata)

·1 minuto

Nel parlare di Cellular Automata in un corso universitario che ho seguito, sono rimasto incuriosito dal fatto che queste possano essere Turing complete. Approfondendo la faccenda, ho trovato un set di regole detto Wireworld su cui dei pazzoidi hanno progettato e implementato una CPU intera.

Io mi sono limitato a implementarne le regole su Godot (game engine per fare videogiochi) e a farci sopra un adder a 4 bit. Sotto all’adder (si vedono solo se in fullscreen) trovate le quattro configurazioni che ho usato. Da sinistra a destra, sono: or, incrocio, and, xor.

I comandi:

  • MOUSE SINISTRO - piazza cella nera
  • MOUSE DESTRO - rimuovi cella
  • MOUSE CENTRALE - piazza cella bianca
  • BARRA SPAZIATRICE - toggle tra modalità EDIT e di simulazione
  • C - pulisce tutte le celle
  • R - reset

Le regole del Wireworld:

  • Una cella bianca diventa grigia
  • Una cella grigia diventa nera
  • Una cella nera diventa bianca se attorno a sé ha una o due celle bianche

Ho ottimizzato nel limite delle mie conoscenze (e voglia), ma finchè Godot non supporterà gli shader computazionali non posso sbolognare i conti alla GPU.