diff --git a/.github/workflows/ubuntu-ci.yml b/.github/workflows/ubuntu-ci.yml index fe0bbdd89..64c59060e 100644 --- a/.github/workflows/ubuntu-ci.yml +++ b/.github/workflows/ubuntu-ci.yml @@ -28,11 +28,11 @@ jobs: sudo apt-get update -qq sudo apt-get install -y --no-install-recommends libx11-dev libxcursor-dev libxrandr-dev libxinerama-dev libxi-dev libxext-dev libxfixes-dev libgl1-mesa-dev libglu-dev - - uses: Jimver/cuda-toolkit@v0.2.5 + - uses: Jimver/cuda-toolkit@v0.2.8 id: cuda-toolkit with: - cuda: '11.5.1' - + cuda: '11.7.0' + - name: Run vcpkg uses: lukka/run-vcpkg@v6 with: diff --git a/README.md b/README.md index 4c602e5a2..ce8fb5c44 100644 --- a/README.md +++ b/README.md @@ -14,6 +14,9 @@ The development is driven by the desire to better understand the conditions for An important goal is to make the simulator user-friendly through a modern user interface, visually appealing rendering and a playful approach.
+**IMPORTANT:** The current development is taking place on the branch [version4](https://github.com/chrxh/alien/tree/version4). + + # Main features ### Physics and graphics engine - Particles for simulating soft body mechanics, heat dissipation, bondings, damages, phase transitions, etc. diff --git a/RELEASE-NOTES.md b/RELEASE-NOTES.md index 4e09ca9e8..650a6d368 100644 --- a/RELEASE-NOTES.md +++ b/RELEASE-NOTES.md @@ -1,5 +1,10 @@ # Release notes +## [3.3.1] - 2023-02-03 +### Added +- allow comments starting with # in cell code +- decompiled cell code shows matching symbols in comments + ## [3.3.0] - 2022-10-05 ### Added - extended color semantic for cells: food chain color matrix and cell color transition rules diff --git a/examples/simulations/demos/Dark Forest.settings.json b/examples/simulations/demos/Dark Forest.settings.json index 0814b16cb..b658400b6 100644 --- a/examples/simulations/demos/Dark Forest.settings.json +++ b/examples/simulations/demos/Dark Forest.settings.json @@ -1,156 +1,357 @@ { "general": { - "time step": "15574", + "time step": "0", "world size": { "x": "2500", "y": "1500" } }, "simulation parameters": { - "time step size": "1.000000", - "friction": "0.001000", - "rigidity": "0.000000", + "time step size": "1.00000000", + "friction": "0.00100000", + "rigidity": "0.00000000", "cell": { - "binding force": "1.000000", - "max velocity": "2.000000", - "max binding distance": "2.600000", - "repulsion strength": "0.080000", - "mutation rate": "0.000000", - "min distance": "0.200000", - "max distance": "1.300000", - "max force": "0.367000", - "max force decay probability": "0.200000", + "binding force": "1.00000000", + "max velocity": "2.00000000", + "max binding distance": "2.59999990", + "repulsion strength": "0.08000000", + "mutation rate": "0.00000040", + "min distance": "0.20000000", + "max distance": "1.29999995", + "max force": "0.36700001", + "max force decay probability": "0.20000000", "max bonds": "6", "max token": "3", "max token branch number": "6", - "min energy": "50.000000", - "transformation probability": "0.200000", - "fusion velocity": "0.206000", - "max binding energy": "500000.000000", + "min energy": "50.00000000", + "transformation probability": "0.20000000", + "fusion velocity": "0.20600000", + "max binding energy": "500000.00000000", + "color transition rules": { + "duration[0]": "0", + "target color[0]": "0", + "duration[1]": "0", + "target color[1]": "1", + "duration[2]": "0", + "target color[2]": "2", + "duration[3]": "0", + "target color[3]": "3", + "duration[4]": "0", + "target color[4]": "4", + "duration[5]": "0", + "target color[5]": "5", + "duration[6]": "0", + "target color[6]": "6" + }, "function": { "min invocations": "40000", - "invocations decay probability": "0.000000", + "invocations decay probability": "0.00000000", "computer": { "max instructions": "15", "memory size": "8" }, "weapon": { - "strength": "0.100000", - "energy cost": "0.159000", - "geometry deviation exponent": "0.000000", - "target color mismatch penalty": "0.375000", - "color penalty": "0.000000", - "connections mismatch penalty": "0.330000", - "token penalty": "0.000000" + "strength": "0.10000000", + "energy cost": "0.15899999", + "geometry deviation exponent": "0.00000000", + "target color mismatch penalty": "0.37500000", + "food chain color matrix[0, 0]": "1.00000000", + "food chain color matrix[0, 1]": "1.00000000", + "food chain color matrix[0, 2]": "1.00000000", + "food chain color matrix[0, 3]": "1.00000000", + "food chain color matrix[0, 4]": "1.00000000", + "food chain color matrix[0, 5]": "1.00000000", + "food chain color matrix[0, 6]": "1.00000000", + "food chain color matrix[1, 0]": "1.00000000", + "food chain color matrix[1, 1]": "1.00000000", + "food chain color matrix[1, 2]": "1.00000000", + "food chain color matrix[1, 3]": "1.00000000", + "food chain color matrix[1, 4]": "1.00000000", + "food chain color matrix[1, 5]": "1.00000000", + "food chain color matrix[1, 6]": "1.00000000", + "food chain color matrix[2, 0]": "1.00000000", + "food chain color matrix[2, 1]": "1.00000000", + "food chain color matrix[2, 2]": "1.00000000", + "food chain color matrix[2, 3]": "1.00000000", + "food chain color matrix[2, 4]": "1.00000000", + "food chain color matrix[2, 5]": "1.00000000", + "food chain color matrix[2, 6]": "1.00000000", + "food chain color matrix[3, 0]": "1.00000000", + "food chain color matrix[3, 1]": "1.00000000", + "food chain color matrix[3, 2]": "1.00000000", + "food chain color matrix[3, 3]": "1.00000000", + "food chain color matrix[3, 4]": "1.00000000", + "food chain color matrix[3, 5]": "1.00000000", + "food chain color matrix[3, 6]": "1.00000000", + "food chain color matrix[4, 0]": "1.00000000", + "food chain color matrix[4, 1]": "1.00000000", + "food chain color matrix[4, 2]": "1.00000000", + "food chain color matrix[4, 3]": "1.00000000", + "food chain color matrix[4, 4]": "1.00000000", + "food chain color matrix[4, 5]": "1.00000000", + "food chain color matrix[4, 6]": "1.00000000", + "food chain color matrix[5, 0]": "1.00000000", + "food chain color matrix[5, 1]": "1.00000000", + "food chain color matrix[5, 2]": "1.00000000", + "food chain color matrix[5, 3]": "1.00000000", + "food chain color matrix[5, 4]": "1.00000000", + "food chain color matrix[5, 5]": "1.00000000", + "food chain color matrix[5, 6]": "1.00000000", + "food chain color matrix[6, 0]": "1.00000000", + "food chain color matrix[6, 1]": "1.00000000", + "food chain color matrix[6, 2]": "1.00000000", + "food chain color matrix[6, 3]": "1.00000000", + "food chain color matrix[6, 4]": "1.00000000", + "food chain color matrix[6, 5]": "1.00000000", + "food chain color matrix[6, 6]": "1.00000000", + "connections mismatch penalty": "0.33000001", + "token penalty": "0.00000000" }, "constructor": { "offspring": { - "cell energy": "100.000000", - "cell distance": "1.600000", - "token energy": "60.000000", - "token suppress memory copy": "0.002000" + "cell energy": "100.00000000", + "cell distance": "1.60000002", + "token energy": "60.00000000", + "token suppress memory copy": "0.00200000", + "inherit color": "false" } }, "sensor": { - "range": "220.000000" + "range": "220.00000000" }, "communicator": { - "range": "250.000000" + "range": "250.00000000" } } }, "token": { - "mutation rate": "0.000000", + "mutation rate": "0.00004200", "memory size": "256", - "min energy": "3.000000" + "min energy": "3.00000000" }, "radiation": { - "exponent": "1.000000", - "factor": "0.000050", - "probability": "0.030000", - "velocity multiplier": "1.000000", - "velocity perturbation": "0.500000" + "exponent": "1.00000000", + "factor": "0.00005000", + "probability": "0.03000000", + "velocity multiplier": "1.00000000", + "velocity perturbation": "0.50000000" }, "spots": { "num spots": "0", "0": { "color": "0", "pos": { - "x": "0.000000", - "y": "0.000000" + "x": "0.00000000", + "y": "0.00000000" }, "shape": "circular", - "core width": "100.000000", - "core height": "200.000000", - "core radius": "100.000000", - "fadeout radius": "100.000000", - "friction": "0.001000", - "rigidity": "0.000000", + "core width": "100.00000000", + "core height": "200.00000000", + "core radius": "100.00000000", + "fadeout radius": "100.00000000", + "friction": "0.00100000", + "rigidity": "0.00000000", "radiation": { - "factor": "0.000200" + "factor": "0.00020000" }, "cell": { - "max force": "0.800000", - "min energy": "50.000000", - "binding force": "1.000000", - "fusion velocity": "0.400000", - "max binding energy": "500000.000000", - "mutation rate": "0.000000", + "max force": "0.80000001", + "min energy": "50.00000000", + "binding force": "1.00000000", + "fusion velocity": "0.40000001", + "max binding energy": "500000.00000000", + "mutation rate": "0.00000000", + "color transition rules": { + "duration[0]": "0", + "target color[0]": "0", + "duration[1]": "0", + "target color[1]": "1", + "duration[2]": "0", + "target color[2]": "2", + "duration[3]": "0", + "target color[3]": "3", + "duration[4]": "0", + "target color[4]": "4", + "duration[5]": "0", + "target color[5]": "5", + "duration[6]": "0", + "target color[6]": "6" + }, "function": { "min invocations": "40000", - "invocations decay probability": "0.000000", + "invocations decay probability": "0.00000000", "weapon": { - "energy cost": "0.200000", - "target color mismatch penalty": "0.000000", - "color penalty": "0.000000", - "geometry deviation exponent": "0.000000", - "connections mismatch penalty": "0.330000", - "token penalty": "0.000000" + "energy cost": "0.20000000", + "target color mismatch penalty": "0.00000000", + "geometry deviation exponent": "0.00000000", + "connections mismatch penalty": "0.33000001", + "token penalty": "0.00000000" } } }, "token": { - "mutation rate": "0.000000" + "mutation rate": "0.00000000" + }, + "function": { + "weapon": { + "color matrix[0, 0]": "1.00000000", + "color matrix[0, 1]": "1.00000000", + "color matrix[0, 2]": "1.00000000", + "color matrix[0, 3]": "1.00000000", + "color matrix[0, 4]": "1.00000000", + "color matrix[0, 5]": "1.00000000", + "color matrix[0, 6]": "1.00000000", + "color matrix[1, 0]": "1.00000000", + "color matrix[1, 1]": "1.00000000", + "color matrix[1, 2]": "1.00000000", + "color matrix[1, 3]": "1.00000000", + "color matrix[1, 4]": "1.00000000", + "color matrix[1, 5]": "1.00000000", + "color matrix[1, 6]": "1.00000000", + "color matrix[2, 0]": "1.00000000", + "color matrix[2, 1]": "1.00000000", + "color matrix[2, 2]": "1.00000000", + "color matrix[2, 3]": "1.00000000", + "color matrix[2, 4]": "1.00000000", + "color matrix[2, 5]": "1.00000000", + "color matrix[2, 6]": "1.00000000", + "color matrix[3, 0]": "1.00000000", + "color matrix[3, 1]": "1.00000000", + "color matrix[3, 2]": "1.00000000", + "color matrix[3, 3]": "1.00000000", + "color matrix[3, 4]": "1.00000000", + "color matrix[3, 5]": "1.00000000", + "color matrix[3, 6]": "1.00000000", + "color matrix[4, 0]": "1.00000000", + "color matrix[4, 1]": "1.00000000", + "color matrix[4, 2]": "1.00000000", + "color matrix[4, 3]": "1.00000000", + "color matrix[4, 4]": "1.00000000", + "color matrix[4, 5]": "1.00000000", + "color matrix[4, 6]": "1.00000000", + "color matrix[5, 0]": "1.00000000", + "color matrix[5, 1]": "1.00000000", + "color matrix[5, 2]": "1.00000000", + "color matrix[5, 3]": "1.00000000", + "color matrix[5, 4]": "1.00000000", + "color matrix[5, 5]": "1.00000000", + "color matrix[5, 6]": "1.00000000", + "color matrix[6, 0]": "1.00000000", + "color matrix[6, 1]": "1.00000000", + "color matrix[6, 2]": "1.00000000", + "color matrix[6, 3]": "1.00000000", + "color matrix[6, 4]": "1.00000000", + "color matrix[6, 5]": "1.00000000", + "color matrix[6, 6]": "1.00000000" + } } }, "1": { "color": "0", "pos": { - "x": "0.000000", - "y": "0.000000" + "x": "0.00000000", + "y": "0.00000000" }, "shape": "circular", - "core width": "100.000000", - "core height": "200.000000", - "core radius": "100.000000", - "fadeout radius": "100.000000", - "friction": "0.001000", - "rigidity": "0.000000", + "core width": "100.00000000", + "core height": "200.00000000", + "core radius": "100.00000000", + "fadeout radius": "100.00000000", + "friction": "0.00100000", + "rigidity": "0.00000000", "radiation": { - "factor": "0.000200" + "factor": "0.00020000" }, "cell": { - "max force": "0.800000", - "min energy": "50.000000", - "binding force": "1.000000", - "fusion velocity": "0.400000", - "max binding energy": "500000.000000", - "mutation rate": "0.000000", + "max force": "0.80000001", + "min energy": "50.00000000", + "binding force": "1.00000000", + "fusion velocity": "0.40000001", + "max binding energy": "500000.00000000", + "mutation rate": "0.00000000", + "color transition rules": { + "duration[0]": "0", + "target color[0]": "0", + "duration[1]": "0", + "target color[1]": "1", + "duration[2]": "0", + "target color[2]": "2", + "duration[3]": "0", + "target color[3]": "3", + "duration[4]": "0", + "target color[4]": "4", + "duration[5]": "0", + "target color[5]": "5", + "duration[6]": "0", + "target color[6]": "6" + }, "function": { "min invocations": "40000", - "invocations decay probability": "0.000000", + "invocations decay probability": "0.00000000", "weapon": { - "energy cost": "0.200000", - "target color mismatch penalty": "0.000000", - "color penalty": "0.000000", - "geometry deviation exponent": "0.000000", - "connections mismatch penalty": "0.330000", - "token penalty": "0.000000" + "energy cost": "0.20000000", + "target color mismatch penalty": "0.00000000", + "geometry deviation exponent": "0.00000000", + "connections mismatch penalty": "0.33000001", + "token penalty": "0.00000000" } } }, "token": { - "mutation rate": "0.000000" + "mutation rate": "0.00000000" + }, + "function": { + "weapon": { + "color matrix[0, 0]": "1.00000000", + "color matrix[0, 1]": "1.00000000", + "color matrix[0, 2]": "1.00000000", + "color matrix[0, 3]": "1.00000000", + "color matrix[0, 4]": "1.00000000", + "color matrix[0, 5]": "1.00000000", + "color matrix[0, 6]": "1.00000000", + "color matrix[1, 0]": "1.00000000", + "color matrix[1, 1]": "1.00000000", + "color matrix[1, 2]": "1.00000000", + "color matrix[1, 3]": "1.00000000", + "color matrix[1, 4]": "1.00000000", + "color matrix[1, 5]": "1.00000000", + "color matrix[1, 6]": "1.00000000", + "color matrix[2, 0]": "1.00000000", + "color matrix[2, 1]": "1.00000000", + "color matrix[2, 2]": "1.00000000", + "color matrix[2, 3]": "1.00000000", + "color matrix[2, 4]": "1.00000000", + "color matrix[2, 5]": "1.00000000", + "color matrix[2, 6]": "1.00000000", + "color matrix[3, 0]": "1.00000000", + "color matrix[3, 1]": "1.00000000", + "color matrix[3, 2]": "1.00000000", + "color matrix[3, 3]": "1.00000000", + "color matrix[3, 4]": "1.00000000", + "color matrix[3, 5]": "1.00000000", + "color matrix[3, 6]": "1.00000000", + "color matrix[4, 0]": "1.00000000", + "color matrix[4, 1]": "1.00000000", + "color matrix[4, 2]": "1.00000000", + "color matrix[4, 3]": "1.00000000", + "color matrix[4, 4]": "1.00000000", + "color matrix[4, 5]": "1.00000000", + "color matrix[4, 6]": "1.00000000", + "color matrix[5, 0]": "1.00000000", + "color matrix[5, 1]": "1.00000000", + "color matrix[5, 2]": "1.00000000", + "color matrix[5, 3]": "1.00000000", + "color matrix[5, 4]": "1.00000000", + "color matrix[5, 5]": "1.00000000", + "color matrix[5, 6]": "1.00000000", + "color matrix[6, 0]": "1.00000000", + "color matrix[6, 1]": "1.00000000", + "color matrix[6, 2]": "1.00000000", + "color matrix[6, 3]": "1.00000000", + "color matrix[6, 4]": "1.00000000", + "color matrix[6, 5]": "1.00000000", + "color matrix[6, 6]": "1.00000000" + } } } } @@ -160,19 +361,19 @@ "num centers": "1", "center0": { "pos": { - "x": "700.000000", - "y": "500.000000" + "x": "700.00000000", + "y": "500.00000000" }, - "radius": "200.000000", - "strength": "0.010000" + "radius": "200.00000000", + "strength": "0.01000000" }, "center1": { "pos": { - "x": "0.000000", - "y": "0.000000" + "x": "0.00000000", + "y": "0.00000000" }, - "radius": "200.000000", - "strength": "0.010000" + "radius": "200.00000000", + "strength": "0.01000000" } } } diff --git a/resources/autosave.settings.json b/resources/autosave.settings.json index 0814b16cb..b658400b6 100644 --- a/resources/autosave.settings.json +++ b/resources/autosave.settings.json @@ -1,156 +1,357 @@ { "general": { - "time step": "15574", + "time step": "0", "world size": { "x": "2500", "y": "1500" } }, "simulation parameters": { - "time step size": "1.000000", - "friction": "0.001000", - "rigidity": "0.000000", + "time step size": "1.00000000", + "friction": "0.00100000", + "rigidity": "0.00000000", "cell": { - "binding force": "1.000000", - "max velocity": "2.000000", - "max binding distance": "2.600000", - "repulsion strength": "0.080000", - "mutation rate": "0.000000", - "min distance": "0.200000", - "max distance": "1.300000", - "max force": "0.367000", - "max force decay probability": "0.200000", + "binding force": "1.00000000", + "max velocity": "2.00000000", + "max binding distance": "2.59999990", + "repulsion strength": "0.08000000", + "mutation rate": "0.00000040", + "min distance": "0.20000000", + "max distance": "1.29999995", + "max force": "0.36700001", + "max force decay probability": "0.20000000", "max bonds": "6", "max token": "3", "max token branch number": "6", - "min energy": "50.000000", - "transformation probability": "0.200000", - "fusion velocity": "0.206000", - "max binding energy": "500000.000000", + "min energy": "50.00000000", + "transformation probability": "0.20000000", + "fusion velocity": "0.20600000", + "max binding energy": "500000.00000000", + "color transition rules": { + "duration[0]": "0", + "target color[0]": "0", + "duration[1]": "0", + "target color[1]": "1", + "duration[2]": "0", + "target color[2]": "2", + "duration[3]": "0", + "target color[3]": "3", + "duration[4]": "0", + "target color[4]": "4", + "duration[5]": "0", + "target color[5]": "5", + "duration[6]": "0", + "target color[6]": "6" + }, "function": { "min invocations": "40000", - "invocations decay probability": "0.000000", + "invocations decay probability": "0.00000000", "computer": { "max instructions": "15", "memory size": "8" }, "weapon": { - "strength": "0.100000", - "energy cost": "0.159000", - "geometry deviation exponent": "0.000000", - "target color mismatch penalty": "0.375000", - "color penalty": "0.000000", - "connections mismatch penalty": "0.330000", - "token penalty": "0.000000" + "strength": "0.10000000", + "energy cost": "0.15899999", + "geometry deviation exponent": "0.00000000", + "target color mismatch penalty": "0.37500000", + "food chain color matrix[0, 0]": "1.00000000", + "food chain color matrix[0, 1]": "1.00000000", + "food chain color matrix[0, 2]": "1.00000000", + "food chain color matrix[0, 3]": "1.00000000", + "food chain color matrix[0, 4]": "1.00000000", + "food chain color matrix[0, 5]": "1.00000000", + "food chain color matrix[0, 6]": "1.00000000", + "food chain color matrix[1, 0]": "1.00000000", + "food chain color matrix[1, 1]": "1.00000000", + "food chain color matrix[1, 2]": "1.00000000", + "food chain color matrix[1, 3]": "1.00000000", + "food chain color matrix[1, 4]": "1.00000000", + "food chain color matrix[1, 5]": "1.00000000", + "food chain color matrix[1, 6]": "1.00000000", + "food chain color matrix[2, 0]": "1.00000000", + "food chain color matrix[2, 1]": "1.00000000", + "food chain color matrix[2, 2]": "1.00000000", + "food chain color matrix[2, 3]": "1.00000000", + "food chain color matrix[2, 4]": "1.00000000", + "food chain color matrix[2, 5]": "1.00000000", + "food chain color matrix[2, 6]": "1.00000000", + "food chain color matrix[3, 0]": "1.00000000", + "food chain color matrix[3, 1]": "1.00000000", + "food chain color matrix[3, 2]": "1.00000000", + "food chain color matrix[3, 3]": "1.00000000", + "food chain color matrix[3, 4]": "1.00000000", + "food chain color matrix[3, 5]": "1.00000000", + "food chain color matrix[3, 6]": "1.00000000", + "food chain color matrix[4, 0]": "1.00000000", + "food chain color matrix[4, 1]": "1.00000000", + "food chain color matrix[4, 2]": "1.00000000", + "food chain color matrix[4, 3]": "1.00000000", + "food chain color matrix[4, 4]": "1.00000000", + "food chain color matrix[4, 5]": "1.00000000", + "food chain color matrix[4, 6]": "1.00000000", + "food chain color matrix[5, 0]": "1.00000000", + "food chain color matrix[5, 1]": "1.00000000", + "food chain color matrix[5, 2]": "1.00000000", + "food chain color matrix[5, 3]": "1.00000000", + "food chain color matrix[5, 4]": "1.00000000", + "food chain color matrix[5, 5]": "1.00000000", + "food chain color matrix[5, 6]": "1.00000000", + "food chain color matrix[6, 0]": "1.00000000", + "food chain color matrix[6, 1]": "1.00000000", + "food chain color matrix[6, 2]": "1.00000000", + "food chain color matrix[6, 3]": "1.00000000", + "food chain color matrix[6, 4]": "1.00000000", + "food chain color matrix[6, 5]": "1.00000000", + "food chain color matrix[6, 6]": "1.00000000", + "connections mismatch penalty": "0.33000001", + "token penalty": "0.00000000" }, "constructor": { "offspring": { - "cell energy": "100.000000", - "cell distance": "1.600000", - "token energy": "60.000000", - "token suppress memory copy": "0.002000" + "cell energy": "100.00000000", + "cell distance": "1.60000002", + "token energy": "60.00000000", + "token suppress memory copy": "0.00200000", + "inherit color": "false" } }, "sensor": { - "range": "220.000000" + "range": "220.00000000" }, "communicator": { - "range": "250.000000" + "range": "250.00000000" } } }, "token": { - "mutation rate": "0.000000", + "mutation rate": "0.00004200", "memory size": "256", - "min energy": "3.000000" + "min energy": "3.00000000" }, "radiation": { - "exponent": "1.000000", - "factor": "0.000050", - "probability": "0.030000", - "velocity multiplier": "1.000000", - "velocity perturbation": "0.500000" + "exponent": "1.00000000", + "factor": "0.00005000", + "probability": "0.03000000", + "velocity multiplier": "1.00000000", + "velocity perturbation": "0.50000000" }, "spots": { "num spots": "0", "0": { "color": "0", "pos": { - "x": "0.000000", - "y": "0.000000" + "x": "0.00000000", + "y": "0.00000000" }, "shape": "circular", - "core width": "100.000000", - "core height": "200.000000", - "core radius": "100.000000", - "fadeout radius": "100.000000", - "friction": "0.001000", - "rigidity": "0.000000", + "core width": "100.00000000", + "core height": "200.00000000", + "core radius": "100.00000000", + "fadeout radius": "100.00000000", + "friction": "0.00100000", + "rigidity": "0.00000000", "radiation": { - "factor": "0.000200" + "factor": "0.00020000" }, "cell": { - "max force": "0.800000", - "min energy": "50.000000", - "binding force": "1.000000", - "fusion velocity": "0.400000", - "max binding energy": "500000.000000", - "mutation rate": "0.000000", + "max force": "0.80000001", + "min energy": "50.00000000", + "binding force": "1.00000000", + "fusion velocity": "0.40000001", + "max binding energy": "500000.00000000", + "mutation rate": "0.00000000", + "color transition rules": { + "duration[0]": "0", + "target color[0]": "0", + "duration[1]": "0", + "target color[1]": "1", + "duration[2]": "0", + "target color[2]": "2", + "duration[3]": "0", + "target color[3]": "3", + "duration[4]": "0", + "target color[4]": "4", + "duration[5]": "0", + "target color[5]": "5", + "duration[6]": "0", + "target color[6]": "6" + }, "function": { "min invocations": "40000", - "invocations decay probability": "0.000000", + "invocations decay probability": "0.00000000", "weapon": { - "energy cost": "0.200000", - "target color mismatch penalty": "0.000000", - "color penalty": "0.000000", - "geometry deviation exponent": "0.000000", - "connections mismatch penalty": "0.330000", - "token penalty": "0.000000" + "energy cost": "0.20000000", + "target color mismatch penalty": "0.00000000", + "geometry deviation exponent": "0.00000000", + "connections mismatch penalty": "0.33000001", + "token penalty": "0.00000000" } } }, "token": { - "mutation rate": "0.000000" + "mutation rate": "0.00000000" + }, + "function": { + "weapon": { + "color matrix[0, 0]": "1.00000000", + "color matrix[0, 1]": "1.00000000", + "color matrix[0, 2]": "1.00000000", + "color matrix[0, 3]": "1.00000000", + "color matrix[0, 4]": "1.00000000", + "color matrix[0, 5]": "1.00000000", + "color matrix[0, 6]": "1.00000000", + "color matrix[1, 0]": "1.00000000", + "color matrix[1, 1]": "1.00000000", + "color matrix[1, 2]": "1.00000000", + "color matrix[1, 3]": "1.00000000", + "color matrix[1, 4]": "1.00000000", + "color matrix[1, 5]": "1.00000000", + "color matrix[1, 6]": "1.00000000", + "color matrix[2, 0]": "1.00000000", + "color matrix[2, 1]": "1.00000000", + "color matrix[2, 2]": "1.00000000", + "color matrix[2, 3]": "1.00000000", + "color matrix[2, 4]": "1.00000000", + "color matrix[2, 5]": "1.00000000", + "color matrix[2, 6]": "1.00000000", + "color matrix[3, 0]": "1.00000000", + "color matrix[3, 1]": "1.00000000", + "color matrix[3, 2]": "1.00000000", + "color matrix[3, 3]": "1.00000000", + "color matrix[3, 4]": "1.00000000", + "color matrix[3, 5]": "1.00000000", + "color matrix[3, 6]": "1.00000000", + "color matrix[4, 0]": "1.00000000", + "color matrix[4, 1]": "1.00000000", + "color matrix[4, 2]": "1.00000000", + "color matrix[4, 3]": "1.00000000", + "color matrix[4, 4]": "1.00000000", + "color matrix[4, 5]": "1.00000000", + "color matrix[4, 6]": "1.00000000", + "color matrix[5, 0]": "1.00000000", + "color matrix[5, 1]": "1.00000000", + "color matrix[5, 2]": "1.00000000", + "color matrix[5, 3]": "1.00000000", + "color matrix[5, 4]": "1.00000000", + "color matrix[5, 5]": "1.00000000", + "color matrix[5, 6]": "1.00000000", + "color matrix[6, 0]": "1.00000000", + "color matrix[6, 1]": "1.00000000", + "color matrix[6, 2]": "1.00000000", + "color matrix[6, 3]": "1.00000000", + "color matrix[6, 4]": "1.00000000", + "color matrix[6, 5]": "1.00000000", + "color matrix[6, 6]": "1.00000000" + } } }, "1": { "color": "0", "pos": { - "x": "0.000000", - "y": "0.000000" + "x": "0.00000000", + "y": "0.00000000" }, "shape": "circular", - "core width": "100.000000", - "core height": "200.000000", - "core radius": "100.000000", - "fadeout radius": "100.000000", - "friction": "0.001000", - "rigidity": "0.000000", + "core width": "100.00000000", + "core height": "200.00000000", + "core radius": "100.00000000", + "fadeout radius": "100.00000000", + "friction": "0.00100000", + "rigidity": "0.00000000", "radiation": { - "factor": "0.000200" + "factor": "0.00020000" }, "cell": { - "max force": "0.800000", - "min energy": "50.000000", - "binding force": "1.000000", - "fusion velocity": "0.400000", - "max binding energy": "500000.000000", - "mutation rate": "0.000000", + "max force": "0.80000001", + "min energy": "50.00000000", + "binding force": "1.00000000", + "fusion velocity": "0.40000001", + "max binding energy": "500000.00000000", + "mutation rate": "0.00000000", + "color transition rules": { + "duration[0]": "0", + "target color[0]": "0", + "duration[1]": "0", + "target color[1]": "1", + "duration[2]": "0", + "target color[2]": "2", + "duration[3]": "0", + "target color[3]": "3", + "duration[4]": "0", + "target color[4]": "4", + "duration[5]": "0", + "target color[5]": "5", + "duration[6]": "0", + "target color[6]": "6" + }, "function": { "min invocations": "40000", - "invocations decay probability": "0.000000", + "invocations decay probability": "0.00000000", "weapon": { - "energy cost": "0.200000", - "target color mismatch penalty": "0.000000", - "color penalty": "0.000000", - "geometry deviation exponent": "0.000000", - "connections mismatch penalty": "0.330000", - "token penalty": "0.000000" + "energy cost": "0.20000000", + "target color mismatch penalty": "0.00000000", + "geometry deviation exponent": "0.00000000", + "connections mismatch penalty": "0.33000001", + "token penalty": "0.00000000" } } }, "token": { - "mutation rate": "0.000000" + "mutation rate": "0.00000000" + }, + "function": { + "weapon": { + "color matrix[0, 0]": "1.00000000", + "color matrix[0, 1]": "1.00000000", + "color matrix[0, 2]": "1.00000000", + "color matrix[0, 3]": "1.00000000", + "color matrix[0, 4]": "1.00000000", + "color matrix[0, 5]": "1.00000000", + "color matrix[0, 6]": "1.00000000", + "color matrix[1, 0]": "1.00000000", + "color matrix[1, 1]": "1.00000000", + "color matrix[1, 2]": "1.00000000", + "color matrix[1, 3]": "1.00000000", + "color matrix[1, 4]": "1.00000000", + "color matrix[1, 5]": "1.00000000", + "color matrix[1, 6]": "1.00000000", + "color matrix[2, 0]": "1.00000000", + "color matrix[2, 1]": "1.00000000", + "color matrix[2, 2]": "1.00000000", + "color matrix[2, 3]": "1.00000000", + "color matrix[2, 4]": "1.00000000", + "color matrix[2, 5]": "1.00000000", + "color matrix[2, 6]": "1.00000000", + "color matrix[3, 0]": "1.00000000", + "color matrix[3, 1]": "1.00000000", + "color matrix[3, 2]": "1.00000000", + "color matrix[3, 3]": "1.00000000", + "color matrix[3, 4]": "1.00000000", + "color matrix[3, 5]": "1.00000000", + "color matrix[3, 6]": "1.00000000", + "color matrix[4, 0]": "1.00000000", + "color matrix[4, 1]": "1.00000000", + "color matrix[4, 2]": "1.00000000", + "color matrix[4, 3]": "1.00000000", + "color matrix[4, 4]": "1.00000000", + "color matrix[4, 5]": "1.00000000", + "color matrix[4, 6]": "1.00000000", + "color matrix[5, 0]": "1.00000000", + "color matrix[5, 1]": "1.00000000", + "color matrix[5, 2]": "1.00000000", + "color matrix[5, 3]": "1.00000000", + "color matrix[5, 4]": "1.00000000", + "color matrix[5, 5]": "1.00000000", + "color matrix[5, 6]": "1.00000000", + "color matrix[6, 0]": "1.00000000", + "color matrix[6, 1]": "1.00000000", + "color matrix[6, 2]": "1.00000000", + "color matrix[6, 3]": "1.00000000", + "color matrix[6, 4]": "1.00000000", + "color matrix[6, 5]": "1.00000000", + "color matrix[6, 6]": "1.00000000" + } } } } @@ -160,19 +361,19 @@ "num centers": "1", "center0": { "pos": { - "x": "700.000000", - "y": "500.000000" + "x": "700.00000000", + "y": "500.00000000" }, - "radius": "200.000000", - "strength": "0.010000" + "radius": "200.00000000", + "strength": "0.01000000" }, "center1": { "pos": { - "x": "0.000000", - "y": "0.000000" + "x": "0.00000000", + "y": "0.00000000" }, - "radius": "200.000000", - "strength": "0.010000" + "radius": "200.00000000", + "strength": "0.01000000" } } } diff --git a/source/Base/Resources.h b/source/Base/Resources.h index e5817a1f0..931df42fb 100644 --- a/source/Base/Resources.h +++ b/source/Base/Resources.h @@ -2,7 +2,7 @@ namespace Const { - std::string const ProgramVersion = "3.3.0"; + std::string const ProgramVersion = "3.3.1"; std::string const BasePath = "resources/"; diff --git a/source/EngineGpuKernels/Operations.cuh b/source/EngineGpuKernels/Operations.cuh index 01d3ba63a..b44832761 100644 --- a/source/EngineGpuKernels/Operations.cuh +++ b/source/EngineGpuKernels/Operations.cuh @@ -59,3 +59,8 @@ struct SensorOperation { Token* token; }; + +struct NeuralNetOperation +{ + Token* token; +}; diff --git a/source/EngineGpuKernels/SimulationData.cuh b/source/EngineGpuKernels/SimulationData.cuh index ac65e6550..5b8a7254c 100644 --- a/source/EngineGpuKernels/SimulationData.cuh +++ b/source/EngineGpuKernels/SimulationData.cuh @@ -13,19 +13,25 @@ struct SimulationData { + //maps int2 worldSize; - CellMap cellMap; ParticleMap particleMap; - CellFunctionData cellFunctionData; + //objects Entities entities; Entities entitiesForCleanup; + //additional data for cell functions RawMemory processMemory; + CellFunctionData cellFunctionData; + + //scheduled operations TempArray