API for all possible cellular automata that work same at all angles

Screenshots

Description

Research on automata and boltzmann AI. Has new visual kind of function editor where each click changes if a column is sine/sigmoid/half/double/exp/etc or which of the 0, 1, or 2 columns to the left are its params. Every click changes the patterns of waves seen on the left, which run that function you visually built at each point. The cellular automata API is, at each 2d point can be a different function and sizes of circles measuring average brightness around it. As we know from SmoothLife variation of Conways Game Of Life, these kind of automata can be Turing Complete, can calculate anything thats possible to calculate depending on the functions you visually build and TODO how boltzmann AI is hooked in. A 2d space tree optimizes the averaging of brightness in any chosen circle to cost only its perimeter not its area, so its really fast. - Also demo of a boltzmann machine learning mnist ocr dataset as you watch weights change and paint onto it and it dreams back at you.

Categories

License

Features

I created hundreds of automata funcs in a few minutes, saw each instantly, and didnt need to save them because its so easy to click even randomly to get started (and because saving of the java code of the funcs isnt built yet, but you can use them as java objects). I saw about 20 different kinds of patterns, variations on size shape vibration fractal dimension blur vs high frequency, and the high frequency pushes bubbles to be certain sizes that change when you change the automata func (thats copied into all the pixels to run from then on). Its not exactly gravity, but its what I think makes gravity work somewhere in there, below the details of which particle has which mass. Vibrations push blobs of things together which on screen were bright or dark blobs.

API is in the bellautomata package, in the NsphereVecFunc class, which has only 1 function you can plugin to use your own automata rules, or use the example plugin in the 2.0.0 window which implements that API the same as you would..

Contrastive Divergence learning algorithm for vectors (Geoffrey Hinton wrote that even in 2002 that was the core of how its done)

Boltzmann machine demo where you can see weights forming during training as they vibrate, or see the neuralnodes turn on and off and at the top slowly form into a little like the mnist digits (because it starts empty so you can see how it learns), and mostly when its finished you can draw white or black onto the digits as it kind of dreams back at you. This can be hooked into lots of useful things to learn. Contains a 14x14 smaller simpler version of MNIST OCR training data 1 bit per pixel from each 2x2 pixels if 2 or more of them were on (because as scalars it was really dark and edges), and 16x16 including the 10 pixels for training labels (which digit).

Similar to convolutional neural net in the circles automata interface and more general, but the intelligence is in a differentb demo button so far.

Includes simplest kind of dropout (take the sigmoid's chance as a bit instead of using continuous mode)

Similar to neural dropout and adiabatic theory of heat and position^2 + speed^2 is conserved in total (in theory, TODO find ways to improve that balance), normalizes cellular automata numbers, seen as brightness on screen, to linear range -1 to 1 which is what balances the usually partially random functions you click into existence so they at least every few or at most 20 random clicks, of the time look interesting, and you can get more skilled with practice.

Boltzmann part similar to SimpleRBM and many more complex systems but thats where I learned about boltzmann machines in general, that they are really simple as a symmtric neuralnet.

Cellular automata part similar to SmoothLife and its many variations. Maybe these are useful projects to eachother in some part, like I want SmoothLife's GPU code for fourier if its aligned from a point outward symmetricly, but as physicsmata is a dimensionless topological manifold, only by default 2d, might have to make our own fourier, like in the 2 FFT codes in version 0.5 but fractional fourier might be needed for more advanced things. The circles of any size around each point describe all of that, with some possible func.

Uses Wavetree (Immutable Sparse Wave Trees) for bitstrings for boltzmann API (in progress). Wavetree handles bit strings up to 2^63 sparsely in a tree so you can copy/paste and build huge combinations of partially duplicated bits, like the contents of thousands or millions of hard drives)... just starting to use my project Wavetree.

Is usable now as visual function builder (colored squares only), boltzmann learning, and automata interface, but its not easy for end users to help build the game from inside the game yet, since its just a demo you play for a few minutes and use the tools if you can this early.

Older... Each minor (0.x) version up to 1.2 demonstrates a different property of math, and I'll go back and combine them all seamlessly after this research is done. Click "Browse all files" to try the various versions. They all start with you double click their jar file. I think I'm finding the right direction now.