Message Boards Message Boards

0
|
3500 Views
|
0 Replies
|
0 Total Likes
View groups...
Share
Share this post:
GROUPS:

Some ideas for projects related to NKS

Posted 4 years ago

I wrote an email to someone recently describing some ideas I had for some projects, I thought I'd just share it here. Below that is a list I also sent the person with some projects I've already completed. I need to get my completed projects into an organized manner. In the mean time I've attached a file which has some startings of organizing all my projects together. Please do message me with questions about any of this!

Some project ideas:

-A cellular automaton based evolution simulator, in which cells contain the rules of the CA, and when patterns spread, they also spread their rules while mutating and attempting to outgrow other growing pattern-rules.

-A game based on a 2D cellular automaton in which one uses a mouse to attempt to avoid gliders of one color while changing them to one's own safe color by firing gliders at structures. -I have some ideas for visualizing combinator expressions in 2D, or maybe ND, and watching them evaluate.

-Run different initial conditions for 2D cellular automata for different amounts of time depending on how long the initial condition is, in real time, in a bounded space. Essentially to view the multiverse of a CA, say, Conway's Game of Life, as more initial conditions come online, while running previous ones as well. Shorter initial conditions run much faster than longer ones, that is, until they begin to loop. -I saw you are interested in watching Sudokus be solved in real time. That sounds interesting. Also I'm interested in watching a simple, possibly just brute force AI, try to search through possible moves in a board game like Gomoku.

-Make a website where people submit short programs for generating integers. The website checks if it indeed evaluates to the integer, and keeps the shortest one (this one's not really my idea, but I want to implement it.)

-There's a cellular automaton called "wire world" in which it's easy to make logic gates. It is Turing complete, but for an infinite repeating initial condition. I want to modify it in such a way that when signals go off the edge of the board, they cycle back and change the circuits themselves, such that the circuit can expand and change. Essentially it would be a circuit that can change itself, and that could be built itself, with not to much difficulty, from NAND gates. I hope I explained that ok...

-Had an idea for a program that takes a list of words, partitions those words into pairs in different ways, does an internet search for the pair of words, then finds the top website with those two words, then finds the two words that are most used on that website (compared with how frequently they would be expected to be found to avoid lots of "the"s etc) then searches for those two words, etc. Just curious what would come out.

-I would like to show a live example of a rule 110 Cellular Automaton emulating a cyclic tag system, in which one can watch the relevant gliders and glider collisions as they happen. In the long run, it would be cool to have a series of visualized emulations running in parallel, building up to a Turing machine or beyond.

-I would like to look for a relatively simple rule 110 initial condition that does not become repetitive.

-I would like to find a 2D analogue of rule 37R and see what that looks like.

-I would like to run Wolfram's snowflake CA with large but slightly irregular initial conditions. It would be interesting if the snowflakes ended up having intricate but 6-sided-symetricalness despite having non-symetrical initial conditions. It might show that complexity can be built up "intrinsically" despite different initial conditions. How do real snowflakes do that anyway?

-I want to make playable two player games based near directly on cellular automata, combinators, and Turing machines.

-I have an idea for a simple two player "game" that takes a finite number of moves, but is perhaps undecidable to determine the winner. Part of the idea is that each player can name as large a number as they want on their move. But there's some balance between playing large and small numbers in terms of strategy.

-I have an idea for a multiplayer online game in which players each have one or more "code blobs" which are in-game-shapes which can contain arbitrary code, but which are always confined to a constant volume (and they can only stretch or squish so far also) and also they can move around the game space, but only up to a certain low velocity. The code can "sense" other blobs around it and their positions relative to it, and react in arbitrary ways according to its code. What could people do in this game I wonder.

-Once I've compiled Turing machines down to Cyclic Tag systems, I'd like to run them on some simple systems that implement Cyclic Tag.

-A game where one wanders around looking at 2D cellular automaton generated flowers and maybe other simple system generated objects

-Richard Dawkins had an idea for a strange alternate origin of life, in which clay particles multiply themselves, and cause streams to split, which allow them to multiply faster. I had an idea for implementing a simplified version of this.

-A strange 'programming language" in which every key on your keyboard is a different combinator (also there's parentheses) and so every string, or alternatively, sequence of integers, could be a valid program.

-I know of a website which describes ways to set up various puzzles and games to emulate an NP complete problem via making logic gates etc. I'd like to set up some explicit emulations of those games, or possibly extend them to infinite tiled boards in such a way that they become Turing complete.

-There's a proof that a game called "team constraint logic" is a Turing complete game on a finite board (part of the trick is that players are forced to keep the history of a Turing machine in their heads in order to win or not lose.) I'd like to make an explicit simulation of players of this game running a Turing machine.

-Since I studied genetics, I'm interested in thinking about different ways one could set up DNA, perhaps using transcription factors, to run one or another kind of Turing complete system on it. I have some thoughts.

In progress projects:

-An explicit function for compiling a Turing machine to cyclic tag with binary instead of unary encoding, as described (but not specifically implemented) in another paper.

Projects I've completed:

-Explored a system which is similar to a usual cellular automaton, but which has alternating logic gates which have inputs from certain distances to the left and right of themselves.

-Made a simulation of a system of "see saws" "string pulley systems" and different sized balls that emulate a cyclic tag system.

-Found a small set of tiles that emulate rule 110.

-I wrote a function that evaluates combinators for use in Mathematica while doing a "mentorship project" at Wolfram Research a few years ago.

-An implementation of a network computational system I read about called "nondeterministic constraint logic."

-While doing that mentorship project, I also wrote a paper on finding patterns in combinator evaluation.

-A chatbot based on a language neural network system called GPT-2, in which one can even choose who one wants to speak with, provided that person was well known enough that GPT-2 has the information to attempt to emulate them

-Made an infinite song in which every chord may be played eventually, no chord is played more than once, and yet is unpredictable. It's based on my Recaman like sequence converted to binary and played as notes.

-Another infinite song which plays each chord only once but does not play all chords. It's based on a rule 225 cellular automaton, and whenever the song gets close to repeating, an extra possible note is added.

-Found a blog post about the "simplest interesting game" in which simple was pointed at by the size of a program that implements the game. Wrote a program that runs a game called "gomoku" that I believe has a quite small possible description.

-Explored a deterministic system which has hexagonal branches that avoid each other. I'd like to explore it more with other initial conditions, or perhaps in 3D, also perhaps to run some analysis on the patterns this system produces.

-Wrote a function that converts an integer into a binary number and then makes a name for that binary number.

-Wrote a function that factors a natural number into primes and makes a name for that integer based on the number of each prime that builds up the integer.

-I wanted to invent a cellular automaton that grows slowly, but does something interesting. I knew that a rule 225 cellular automaton grows slowly with initial condition {0,0 } on an infinite background of "1", but it makes a "predictable" nested pattern. With other patterns, it can have more unpredictable behavior, but grows quickly. So I engineered a rule which is basically two of the rule running on top of one another,

-Wrote a program that runs a function, such as a cellular automaton, for many initial conditions. Also, the shorter the initial condition, the more steps the system runs for. As it is, it's defined so that the steps change linearly with size, however in the future I'd like to set it up such that one could put even more focus on running shorter initial conditions for much longer times.

-Wrote a couple pairs of programs that convert an integer to a balanced binary tree and vice versa. One pair uses Catalan numbers to order the trees by size while also allowing "jumping" to a tree without having to generate all the ones before it. See attached file.

-Used the program that generates balanced parentheses, along with the program to run different initial conditions for different amounts of time, to run a sequence of combinator expressions (of a single Turing complete combinator) for a series of steps

-Wrote a program that works with what Stephen Wolfram calls a "multiway system", but in which it tallies the number of times a state is reached, instead of only keeping track of one instance of each state.

-Wrote a function which is similar to the Recaman sequence. The Recaman sequence is a difficult to predict function which may or may not reach all the natural numbers, but in a difficult to predict sequence. However the Recaman sequence sometimes reaches the same number twice, whereas mine always hits a different number.

-Was curious about what a cyclic tag system would do if it had a kind of cyclic boundary. Implemented this.

-Visualized 1D cellular automaton "light cones" in which initial conditions were enumerated and run, and a triangle showing only the finite number of cells directly determined by that initial condition are shown.

-Out of curiosity, wrote a program that starts with the binary number 0, determines whether or not 0 is prime (no) then appends a 0 if it is prime, and a 1 if it is not prime. This is repeated. I also tried this with running a rule 110 cellular automaton and seeing if a cell at the bottom of the light cone is a 0 or a 1 and appending that etc.

-Automatically colored certain "textures" in a rule 37R reversible cellular automaton. Determined that there's some conservation in the differences of different patches of texture at each step. -Investigated the shortest strings of SK combinators that lead to each integer. I'd like to do this project again but with a single combinator, instead.

-Implemented a simple Turing complete system that I find fascinating and which only has two symbols, called "slashes".

-A couple "base infinity" number systems, which really just means I've written a couple algorithms that output a different symbol for each integer.

-A program that depends on a "non circular dictionary" built up from 60 "semantic primes" and that takes a word and expands the definition out down to the primes. I'd like to also make it build up a more easy to parse series of definitions the word depends on also, instead of just expanding the word out.

Attachments:
POSTED BY: Eric Parfitt
Reply to this discussion
Community posts can be styled and formatted using the Markdown syntax.
Reply Preview
Attachments
Remove
or Discard

Group Abstract Group Abstract