# References

Shader Park's unique feature is a javascript library for creating 3D shaders, however sometimes you want to work directly with GLSL, which is also supported.

You can create GLSL sculptures at the following link:
https://shaderpark.com/new/glsl (opens new window)

In bare bones enviroments like ShaderToy (opens new window) you need to write your own raymarching code to render Signed Distance Field (SDF) shapes. This boilerplate is provided in the Shader Park GLSL editor, although you can still implement yourself if you like.

It is a common convention to define composite SDFs in GLSL in a function with the name "map" or "scene". In the Shader Park GLSL editor, the function is named surfaceDistance because a SDF computes the distance from a point to a surface.

SDFs are colored in the shade function. This is evaluated at the intersection with the surfaceDistance SDF, and the normal is computed numerically using the tetrahedron technique.
Note: if you'd like to use a custom raymarcher, simply set your surfaceDistance to return 0.0 and implement everything from scratch inside the shade function.

Our focus has been the javascript library, so the GLSL API is not fully documented or covered by simple examples. However please feel free to contribute by submitting a pull request to the Shader Park documentation github repository (opens new window) with a link to the example.