What is CindyJS?

CindyJS is a framework to create interactive (mathematical) content for the web.

It aims to be compatible with Cinderella, providing an interpreter for the scripting language CindyScript as well as a set of geometric operations which can be used to describe constructions. Together, these components make it very easy to visualize various concepts, from geometry in particular and mathematics in general, but also from various other fields.

Use CindyJS for your own interactive physics simulations
Use CindyJS for your own interactive physics simulations
Freely experiment with masses, springs, charges and fields! Liberated from the constraints of reality, scenarios ranging from atom physics, classical mechanic to planetary orbits may be examined. Effortlessly sketch experiments using the mouse and bring them to life with a simple click.
Add brain power to your applications with CindyScript
Add brain power to your applications with CindyScript

CindyJS has its own easy-to-learn scripting language CindyScript, which can be used for a variety of smart applets.

Have you ever explained something to another mathematician, while sitting in a loud pub and having nothing but a pen and a napkin? CindyScript is the programming equivalent of the napkin. In other words, CindyScript has been designed to be expressible in sketchy, sometimes non-formal, nevertheless complete and most of all understandable way.

It allows for a high level implementation of mathematical concepts.

Use the GPU without learning WebGL
Use the GPU without learning WebGL

CindyJS provides the high-level mathematically oriented user with access to the shader language of the GPU without learning a shader language.

Here you see an GPU rendered example of a complex phase portrait rendered in CindyJS. You can enter any arbitrary complex function or chose a predefined function and view its complex phase portrait.

f(z) =

For more WebGL-related content, visit our CindyGL-Gallery.


Selected examples can be seen in our showcase-gallery.

A wider set of examples is available in our thematically sorted gallery.

Getting started

The Documentation contains a section to get you started using CindyJS.

Bugs and feature requests

If something doesn't work the way you want it or need it, feel free to file an issue in our GitHub ticket system. Be sure to check for known issues first, though.


CindyJS is licensed under the Apache 2 license.