Artificial Chemistry: A Simple Periodic Table
An artificial chemistry is a computer model used to simulate various types of systems. This can be particularly useful for an artificial life simulation. This series of articles will take you through the process as we create a simple artificial chemistry system. The goal is to use this artificial chemistry system to simulate basic life.
The artificial chemistry is designed to be much simpler than real physical chemistry. This will make it much easier to simulate on a computer. However, this also means that the program is simulating nothing that exists in the real world. It is meant as a learning tool. To see how systems can self-replicate, and perhaps even evolve in a computer system. Most artificial life computer programs do not attempt to simulate physical reality. Simulating physical reality is simply too complex for today’s computer systems.
The first step is to create a periodic table. This is the purpose of this article. The periodic table will consist of 66 elements. These elements will have arbitrary names. For lack of anything better I chose to name them after celestial bodies. I also wanted a total number of elements that is divisible by 6. These elements will be mapped onto a space delineated by 6-sided figures. So an atom could “bond” with at most six other atoms.
Each element will also have a symbol. This will usually be the first two letters of the element’s name. For example Jupiter would be “Ju”. However, this can lead to some repeats. For example, Callisto’s symbol is Ca. Calypso’s symbol is Cl. If using the first two letters produces a repeat symbol, then use the first and third letters to produce the symbol.
The atomic weight is simply the number element that this is. Atomic numbers range from one to sixty six. Atomic weight is defined to be the same as the atomic numbers. Elements become heavier as the atomic number increases. Also each element is defined to be in a family. This is the atomic number modulo six. Atomic number 1 is in family 2. Atomic number 2 is in family 2. Atomic number 6 is in family 6. Atomic number 7 is in family 1. The family will be used to define how the element will bond with other elements.
A simple Java program can be used to generate a CSV file of the periodic table. The following listing shows how to create our simple 66 elements.
import java.util.*;
public class Chem
{
public static String names[] = {
"Adrastea",
"Amalthea",
"Ananke",
"Ariel",
"Atlas",
"Belinda",
"Bianca",
"Callisto",
"Calypso",
"Carme",
"Cordelia",
"Cressida",
"Deimos",
"Desdemona",
"Despina",
"Dione",
"Elara",
"Enceladus",
"Epimetheus",
"Europa",
"Galatea",
"Ganymede",
"Helene",
"Himalia",
"Hyperion",
"Iapetus",
"Io",
"Janus",
"Juluet",
"Jupiter",
"Leda",
"Lysithea",
"Mars",
"Mercury",
"Metis",
"Mimas",
"Miranda",
"Naiad",
"Neptune",
"Nereid",
"Oberon",
"Opnelia",
"Pam",
"Pandora",
"Pasiphae",
"Phobos",
"Phoebe",
"Portia",
"Prometheus",
"Proteus",
"Puck",
"Rhea",
"Rosalind",
"Saturn",
"Sinope",
"Telesto",
"Tethys",
"Thalassa",
"Thebe",
"Titan",
"Titania",
"Triton",
"Umbriel",
"Umbrielil",
"Uranus",
"Venus" };
static Set set = new HashSet();
public static String getSymbol(String name)
{
char a = Character.toUpperCase(name.charAt(0));
String result = "";
int i=1;
do
{
char b = Character.toLowerCase(name.charAt(i));
result = ""+a+b;
i++;
} while(set.contains(result) );
set.add(result);
return result;
}
public static void main(String args[])
{
System.out.println("\"name\","
+"\"atomic mass\""
+"\"atomic number\""
+",\"family\"");
for(int i=0;i
When executed, this program produces the following output:
"name","atomic mass""atomic number","family"
"Adrastea","Ad",",1",1,1
"Amalthea","Am",",2",2,2
"Ananke","An",",3",3,3
"Ariel","Ar",",4",4,4
"Atlas","At",",5",5,5
"Belinda","Be",",6",6,6
"Bianca","Bi",",7",7,1
"Callisto","Ca",",8",8,2
"Calypso","Cl",",9",9,3
"Carme","Cr",",10",10,4
"Cordelia","Co",",11",11,5
"Cressida","Ce",",12",12,6
"Deimos","De",",13",13,1
"Desdemona","Ds",",14",14,2
"Despina","Dp",",15",15,3
"Dione","Di",",16",16,4
"Elara","El",",17",17,5
"Enceladus","En",",18",18,6
"Epimetheus","Ep",",19",19,1
"Europa","Eu",",20",20,2
"Galatea","Ga",",21",21,3
"Ganymede","Gn",",22",22,4
"Helene","He",",23",23,5
"Himalia","Hi",",24",24,6
"Hyperion","Hy",",25",25,1
"Iapetus","Ia",",26",26,2
"Io","Io",",27",27,3
"Janus","Ja",",28",28,4
"Juluet","Ju",",29",29,5
"Jupiter","Jp",",30",30,6
"Leda","Le",",31",31,1
"Lysithea","Ly",",32",32,2
"Mars","Ma",",33",33,3
"Mercury","Me",",34",34,4
"Metis","Mt",",35",35,5
"Mimas","Mi",",36",36,6
"Miranda","Mr",",37",37,1
"Naiad","Na",",38",38,2
"Neptune","Ne",",39",39,3
"Nereid","Nr",",40",40,4
"Oberon","Ob",",41",41,5
"Opnelia","Op",",42",42,6
"Pam","Pa",",43",43,1
"Pandora","Pn",",44",44,2
"Pasiphae","Ps",",45",45,3
"Phobos","Ph",",46",46,4
"Phoebe","Po",",47",47,5
"Portia","Pr",",48",48,6
"Prometheus","Pm",",49",49,1
"Proteus","Pt",",50",50,2
"Puck","Pu",",51",51,3
"Rhea","Rh",",52",52,4
"Rosalind","Ro",",53",53,5
"Saturn","Sa",",54",54,6
"Sinope","Si",",55",55,1
"Telesto","Te",",56",56,2
"Tethys","Tt",",57",57,3
"Thalassa","Th",",58",58,4
"Thebe","Tb",",59",59,5
"Titan","Ti",",60",60,6
"Titania","Ta",",61",61,1
"Triton","Tr",",62",62,2
"Umbriel","Um",",63",63,3
"Umbrielil","Ub",",64",64,4
"Uranus","Ur",",65",65,5
"Venus","Ve",",66",66,6
The periodic table can also be viewed in a table.
Element Name
Symbol
Atomic Number
Atomic Mass
Family
Adrastea
Ad
1
1
1
Amalthea
Am
2
2
2
Ananke
An
3
3
3
Ariel
Ar
4
4
4
Atlas
At
5
5
5
Belinda
Be
6
6
6
Bianca
Bi
7
7
1
Callisto
Ca
8
8
2
Calypso
Cl
9
9
3
Carme
Cr
10
10
4
Cordelia
Co
11
11
5
Cressida
Ce
12
12
6
Deimos
De
13
13
1
Desdemona
Ds
14
14
2
Despina
Dp
15
15
3
Dione
Di
16
16
4
Elara
El
17
17
5
Enceladus
En
18
18
6
Epimetheus
Ep
19
19
1
Europa
Eu
20
20
2
Galatea
Ga
21
21
3
Ganymede
Gn
22
22
4
Helene
He
23
23
5
Himalia
Hi
24
24
6
Hyperion
Hy
25
25
1
Iapetus
Ia
26
26
2
Io
Io
27
27
3
Janus
Ja
28
28
4
Juluet
Ju
29
29
5
Jupiter
Jp
30
30
6
Leda
Le
31
31
1
Lysithea
Ly
32
32
2
Mars
Ma
33
33
3
Mercury
Me
34
34
4
Metis
Mt
35
35
5
Mimas
Mi
36
36
6
Miranda
Mr
37
37
1
Naiad
Na
38
38
2
Neptune
Ne
39
39
3
Nereid
Nr
40
40
4
Oberon
Ob
41
41
5
Opnelia
Op
42
42
6
Pam
Pa
43
43
1
Pandora
Pn
44
44
2
Pasiphae
Ps
45
45
3
Phobos
Ph
46
46
4
Phoebe
Po
47
47
5
Portia
Pr
48
48
6
Prometheus
Pm
49
49
1
Proteus
Pt
50
50
2
Puck
Pu
51
51
3
Rhea
Rh
52
52
4
Rosalind
Ro
53
53
5
Saturn
Sa
54
54
6
Sinope
Si
55
55
1
Telesto
Te
56
56
2
Tethys
Tt
57
57
3
Thalassa
Th
58
58
4
Thebe
Tb
59
59
5
Titan
Ti
60
60
6
Titania
Ta
61
61
1
Triton
Tr
62
62
2
Umbriel
Um
63
63
3
Umbrielil
Ub
64
64
4
Uranus
Ur
65
65
5
Venus
Ve
66
66
6
This provides us with a simple periodic table to experiment with. Future articles will build upon this. The next article will show how to create the universe that the artificial chemistry will execute in.




Comments
Development
Hi Jeff,
Have you had a chance to do some more work on this project? Sounds very interesting. BTW - why did you choose to start off with so many elements? Defining rules for how they all with interact with each other could get pretty heavy. Or are you going to use some generic rules?
Thanks for all the great work!
Vanja