summaryrefslogtreecommitdiff
path: root/sandboxes/EXAMPLE.txt
diff options
context:
space:
mode:
Diffstat (limited to 'sandboxes/EXAMPLE.txt')
-rw-r--r--sandboxes/EXAMPLE.txt47
1 files changed, 47 insertions, 0 deletions
diff --git a/sandboxes/EXAMPLE.txt b/sandboxes/EXAMPLE.txt
new file mode 100644
index 0000000..49de071
--- /dev/null
+++ b/sandboxes/EXAMPLE.txt
@@ -0,0 +1,47 @@
+# This file controls the behavior of function sandbox.
+# Here I'll explain what all the settings do, so you can make your own sandboxes.
+# To create a new sandbox, just add a new .txt file in this folder. It'll automatically appear in the sandbox selection menu.
+# Any empty line or line beginning with the '#' character (like these first three) is ignored
+# All the settings below are optional and have defaults. So you could create a sandbox with just
+# one line, e.g. 'add vec3(-z,0,x)'.
+
+# This sets the number of grains used in the simulation to 20,000
+grains 20000
+# The grain "refresh rate" is the proportion of the grains which are
+# regenerated (replaced by new ones in the starting area) every second.
+# In other words, (1 / this) gives you the "lifetime" of each grain in seconds.
+grain_refresh_rate 0.1
+# This controls the size of the starting area grains are added to
+start_radius 3
+# Set the color of the grains (you can look up "color picker" to find tools for finding color codes)
+color #ffaabb
+# Let's add a function now!
+# The functions are written in the GLSL language (check out https://www.khronos.org/opengles/sdk/docs/manglsl/docbook4/).
+# You can use all sorts of functions like sin, cos, sqrt,
+# etc. For multiplication you use * and to take a to the power of b you need to use pow(a, b).
+# You can use x,y,z to get the coordinates of the grain, or p to get them as a vector. You can also use pi.
+add vec3(z, 0, -sin(y)*x)
+
+# We can add more functions in this same file. We can change settings before adding our next function
+# to make them only apply to it.
+# We'll use more grains for this one.
+grains 30000
+# For this function, let's color-code grains based on speed. First, we can set the two colors,
+# for "slow" grains and "fast" grains.
+color #0000ff
+color2 #ff0000
+# And now we need to specify the "scaling", i.e. how much change in speed corresponds to
+# change in color.
+color_scale 1
+# Now let's add the function.
+add vec3(y, -x*cos(x), 0)
+
+# We can also control some settings which don't apply to any particular function. You can put these anywhere.
+# This controls your movement speed.
+move_speed 5.0
+# Now we get to some technical settings, which you can just leave set to the defaults
+# Field of view in degrees
+fov 50
+# Near and far clipping planes, respectively
+clipping_planes 1 100
+