All Projects → CindyJS → Cindyjs

CindyJS / Cindyjs

Licence: apache-2.0
A JavaScript framework for interactive (mathematical) content.

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Cindyjs

Algorithms
A collection of algorithms and data structures
Stars: ✭ 11,553 (+2233.94%)
Mutual labels:  mathematics, geometry
Mathematics for Machine Learning
Learn mathematics behind machine learning and explore different mathematics in machine learning.
Stars: ✭ 28 (-94.34%)
Mutual labels:  geometry, mathematics
Root
The official repository for ROOT: analyzing, storing and visualizing big data, scientifically
Stars: ✭ 1,377 (+178.18%)
Mutual labels:  mathematics, geometry
Jsxgraph
JSXGraph is a cross-browser library for interactive geometry, function plotting, charting, and data visualization in a web browser.
Stars: ✭ 605 (+22.22%)
Mutual labels:  mathematics, geometry
birkhoff
Euclidean plane and its relatives; a minimalist introduction.
Stars: ✭ 15 (-96.97%)
Mutual labels:  geometry, mathematics
Math Toolbox
Lightweight and modular math toolbox
Stars: ✭ 71 (-85.66%)
Mutual labels:  mathematics, geometry
humke-4d-geometry
A web-based 4D Geometry viewer
Stars: ✭ 51 (-89.7%)
Mutual labels:  geometry, mathematics
Korma
Mathematics library focused on geometry for Multiplatform Kotlin 1.3
Stars: ✭ 65 (-86.87%)
Mutual labels:  mathematics, geometry
euclid.js
2D Euclidean geometry classes, utilities, and drawing tools
Stars: ✭ 69 (-86.06%)
Mutual labels:  geometry, mathematics
curve-shortening-demo
Visualize curve shortening flow in your browser.
Stars: ✭ 19 (-96.16%)
Mutual labels:  geometry, mathematics
geometer
A geometry library written in Python
Stars: ✭ 89 (-82.02%)
Mutual labels:  geometry, mathematics
Mather
zzllrr mather(an offline tool for Math learning, education and research)小乐数学,离线可用的数学学习(自学或教学)、研究辅助工具。计划覆盖数学全部学科的解题、作图、演示、探索工具箱。目前是演示Demo版(抛转引玉),但已经支持数学公式编辑显示,部分作图功能,部分学科,如线性代数、离散数学的部分解题功能。最终目标是推动专业数学家、编程专家、教育工作者、科普工作者共同打造出更加专业级的Mather数学工具
Stars: ✭ 270 (-45.45%)
Mutual labels:  mathematics, geometry
alchemy
Generate any a-by-( b + c ) finite rectangle SVG containing potentially Infinitely many a-by-( 2 * b ) finite rectangles animated along a number line of ( ( c - b ) / a )^n scale symmetry.
Stars: ✭ 29 (-94.14%)
Mutual labels:  geometry, mathematics
spherical-cow
A high volume fraction sphere packing library
Stars: ✭ 24 (-95.15%)
Mutual labels:  geometry, mathematics
Dotscad
Reduce the burden of mathematics when playing OpenSCAD
Stars: ✭ 344 (-30.51%)
Mutual labels:  mathematics, geometry
Quadriflow
QuadriFlow: A Scalable and Robust Method for Quadrangulation
Stars: ✭ 408 (-17.58%)
Mutual labels:  geometry
Symbolics.jl
A fast and modern CAS for a fast and modern language.
Stars: ✭ 435 (-12.12%)
Mutual labels:  mathematics
Touchdesigner shared
TouchDesigner toxes and small projects
Stars: ✭ 385 (-22.22%)
Mutual labels:  geometry
Dynamicalsystems.jl
Award winning software library for nonlinear dynamics
Stars: ✭ 381 (-23.03%)
Mutual labels:  mathematics
Quadpy
Numerical integration (quadrature, cubature) in Python
Stars: ✭ 471 (-4.85%)
Mutual labels:  mathematics

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.

See also our project page.

Examples

Examples on the web can be seen here.

There is also an examples directory inside the repository, demonstrating individual functions and operations.

Developers can run these examples from their local development copy. Some examples may require a webserver-like environment to avoid triggering browser security measures associated with local files. To do so, one can run node_modules/.bin/st -l -nc in the root of the development tree, and then visit the local copy of the examples directory.

Building

If you have npm installed, running npm install in the top level source directory should just work.

If you lack a compatible setup of npm and node, running make build=release in the top level source directory should be able to get a suitable setup installed inside the project directory tree. In general, all required third-party tools should be automatically downloaded and installed inside the project directory tree. One exception is a Java Runtime Environment, which has to be installed before (because users have to manually accept the terms and conditions before being allowed to download a JRE).

If npm resp. make terminated successfully, then build/js will contain the artefacts which you'd likely want to include in your web site. If you are building from an official commit, then make build=release deploy will create build/deploy which is even better suited to be put on a web server, since it references the commit at GitHub which may help diagnose problems.

Building on Windows

The description above uses make mostly for convenience. Pretty much all the commands are in fact passed on to a JavaScript-based build system contained in the make directory. If you don't have make available on Windows, you can call node make instead. So a standard release build would be node make build=release.

Note that you should have the following software installed:

  • A recent Java Runtime Environment (JRE)
  • Node.js with the node command added to the PATH
  • Git for Windows with the git command usable from the Windows Command Prompt

Contributing

When you work on the code base the simple make or node make will give you a build which is fast to compile and easy to debug. In contrast to this, node make build=release will perform additional compilation steps like running the Closure Compiler. It may issue more warnings, which in turn might be useful when developing. You should make sure that your code works in both build modes.

If you are confident that your work is done, call make alltests after you did git add to stage your changes. That will ensure that your modifications pass all kinds of tests. The same tests will be run automatically on pull requests. Once your modifications satisfy your expectations, pass these tests and are accompanied by a suitable test case or demonstrating example (where appropriate), you may file a pull request for your changes.

Documentation

The CindyJS API documentation describes how to create a widget on an HTML page using this framework.

Other documentation in the ref directory describes large portions of the CindyScript programming language. This documentation, however, started as a copy of the corresponding Cinderella documentation. It is currently meant as a goal of what functionality should be supported, while actual support might still be lagging behind. If there is a particular feature you'd need for your work, don't hesitate to file a feature request for it.

License

CindyJS is licensed under the Apache 2 license.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].