#CXRLE Pos=1,0
# Billiard Ball Machine
#
# A Margolus-neighborhood implementation of a rule by Edward Fredkin. 
# Signals and logic gates are simulated by 'billiard balls' that bounce 
# off walls and each other. 
#
# E. Fredkin, T. Toffoli, "Conservative logic", International Journal of 
# Theoretical Physics, 21:3-4, 219-253 (1982)
#
# T. Toffoli, N. Margolus "Cellular Automata Machines: A New 
# Environment for Modeling", MIT Press (1987)
#
# At the time of writing, Golly does not support the Margolus neighborhood,
# so we are emulating it by using some extra states. The odd-numbered cells
# are those in the top-left corner of the 2x2 block to be updated. 
# Configurations must have the correct pattern of states to work correctly 
# - you can't just scribble on the pattern! First run export.py in 
# Scripts/Python/Margolus. Then draw, using state 1. Next select-all and 
# run import.py. You can now continue running the CA.
#
# Rule tree produced by RuleTableToTree.py from the Margolus rule table:
#
# neighborhood:Margolus
# n_states:2
# symmetries:rotate4
# 
# # The Margolus transition a,b,c,d : e,f,g,h means:
# #
# #      a  b   becomes    e  f
# #      c  d              g  h
#
# 1,0,0,0 : 0,0,0,1  # balls travel 
# 0,1,1,0 : 1,0,0,1  # balls collide head-on
#
x = 88, y = 74, rule = BBM-Margolus-emulated
88D$CDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDC
DCDCDCDCDCDCDCDCDCDCDCD$2D84B2D$CDABABABABABABABABABABABABABABABABABA
BABABABABABABABABABABABABABABABABABABABABABABABABCD$2D84B2D$CDABABABA
BABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABAB
ABABABABCD$2D84B2D$CDABABABABABABABABABABABABABABABABABABADCBABABABAB
ABABABABABABABABABABABABABABABABABABCD$2D37B2D45B2D$CDABABABABABABABA
BABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABAB
CD$2D84B2D$CDABABABABABABABABABABABABABABABABABABABABABABABABABABABAB
ABABABABABABABABABABABABABABCD$2D84B2D$CDABABABABABABABABABABABABABAB
ABABABABABABABABABABABABABABABABABABABABABABABABABABABABCD$2D84B2D$CD
ABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABA
BABABABABABABABCD$2D84B2D$CDABABABABABADCDCDCDCDCDCDCDCDCDCDCDCDCDCDC
DCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCBABABABABABCD$2D11B62D11B2D$CDABABABA
BABADCBABABABABABABABABABABABABABABABABABABABABABABABABABABABABADCBAB
ABABABABCD$2D11B2D58B2D11B2D$CDABABABABABADCBABABABABABABABABABABABAB
ABABABABABABABABABABABABABABABABADCBABABABABABCD$2D11B2D58B2D11B2D$CD
ABABABABABADCBABABABABABABABABABABABABABABABABABABABABABABABABABABABA
BADCBABABABABABCD$2D11B2D58B2D11B2D$CDCBABABABABADCBABABABABABABABABA
BABABABABABABABABABABABABABABABABABABABADCBABABABABABCD$2D11B2D28BD
29B2D11B2D$CDABCBABABABADCBABABABABABABABABABABABABABABABABABABABABAB
ABABABABABABABADCBABABABABABCD$2D11B2D30BD27B2D11B2D$CDABABABABABADCB
ABABABABABABABABABABABABABABABABABABABABABABABABABABABABADCBABABABABA
BCD$2D11B2D58B2D11B2D$CDABABABABABADCBABABABABABABABABABABABABABABABA
BABABABABABABABABABABABABADCBABABABABABCD$2D11B2D58B2D11B2D$CDABABABA
BABADCBABABABABABABABABABABABABABABABABABABABABABABABABABABABABADCBAB
ABABABABCD$2D11B2D58B2D11B2D$CDABABABABABADCBABABABABABABABABABABABAB
ABABABABABABABABABABABABABABABABADCBABABABABABCD$2D11B2D58B2D11B2D$CD
ABABABABABADCBABABABABABABABABABABABABABABABABABABABABABABABABABABABA
BADCBABABABABABCD$2D11B2D58B2D11B2D$CDABABABABABADCBABABABABABABABABA
BABABABABABABABABABABABABABABABABABABABADCBABABABABABCD$2D11B2D58B2D
11B2D$CDABABABABABADCBABABABABABABABABABABABABABABABABABABABABABABABA
BABABABABADCBABABABABABCD$2D11B2D58B2D11B2D$CDABABABABABADCBABABABABA
BABABABABABABABABABABABABABABABABABABABABABABABADCBABABABABABCD$2D11B
2D58B2D11B2D$CDABABABABABADCBABABABABABABABABABABABABABABABABABABABAB
ADABABABABABABABADCBABABABABABCD$2D11B2D58B2D11B2D$CDABABABABABADCBAB
ABABABABABABABABABABABABABABABABABABADABABABABABABABABADCBABABABABABC
D$2D11B2D58B2D11B2D$CDABABABABABADCBABABABABABABABABABABABABABABABABA
BABABABABABABABABABABABADCBABABABABABCD$2D11B2D58B2D11B2D$CDABABABABA
BADCBABABABABABABABABABABABABABABABABABABABABABABABABABABABABADCBABAB
ABABABCD$2D11B2D58B2D11B2D$CDABABABABABADCBABABABABABABABABABABABABAB
ABABABABABABABABABABABABABABABADCBABABABABABCD$2D11B2D58B2D11B2D$CDAB
ABABABABADCBABABABABABABABABABABABABABABABABABABABABABABABABABABABABA
DCBABABABABABCD$2D11B2D58B2D11B2D$CDABABABABABADCBABABABABABABABABABA
BABABABABABABABABABABABABABABABABABABADCBABABABABABCD$2D11B2D58B2D11B
2D$CDABABABABABADCBABABABABABABABABABABABABABABABABABABABABABABABABAB
ABABABADCBABABABABABCD$2D11B2D58B2D11B2D$CDABABABABABADCBABABABABABAB
ABABABABABABABABABABABABABABABABABABABABABABADCBABABABABABCD$2D11B2D
58B2D11B2D$CDABABABABABADCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCD
CDCDCDCDCDCDCDCDCBABABABABABCD$2D11B62D11B2D$CDABABABABABABABABABABAB
ABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABCD$2D
84B2D$CDABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABA
BABABABABABABABABABABABCD$2D84B2D$CDABABABABABABABABABABABABABABABABA
BABABABABABABABABABABABABABABABABABABABABABABABABABCD$2D84B2D$CDABABA
BABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABAB
ABABABABABCD$88D$CDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCD
CDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCD!
