summaryrefslogtreecommitdiff
path: root/sandboxes/EXAMPLE_circulation.txt
blob: 8d31e847e6b3bd1ba408b6900534ae81a52e0da1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
# This file controls the behavior of function sandbox.
# Here I'll explain what all the settings do, so you can make your own sandboxes.
# Any empty line or line beginning with the '#' character (like these first three) is ignored

# 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
grain_refresh_rate 0.01
# 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