All Projects → VAlgoLang → VAlgoLang

VAlgoLang / VAlgoLang

Licence: other
Domain Specific Language using Manim to create animations for data structures and algorithms

Programming Languages

kotlin
9241 projects
python
139335 projects - #7 most used programming language
ANTLR
299 projects

Projects that are alternatives of or similar to VAlgoLang

Manim.three.js
A web compatible html5 canvas based mathematical rendering engine like the manim by 3b1b
Stars: ✭ 14 (-58.82%)
Mutual labels:  manim
chanim
Animation engine for explanatory chemistry videos
Stars: ✭ 89 (+161.76%)
Mutual labels:  manim
manim editor
Web Presenter for Mathematical Animations using Manim.
Stars: ✭ 144 (+323.53%)
Mutual labels:  manim
manim-physics
Physics simulation plugin of Manim that can generate scenes in various branches of Physics.
Stars: ✭ 189 (+455.88%)
Mutual labels:  manim
manim
A community-maintained Python framework for creating mathematical animations.
Stars: ✭ 12,657 (+37126.47%)
Mutual labels:  manim
manim-web
Manim animation engine, for the web
Stars: ✭ 61 (+79.41%)
Mutual labels:  manim
manim
manim repository to generate Chinese document
Stars: ✭ 111 (+226.47%)
Mutual labels:  manim
calcanim
Este es un repositorio donde encontrarás todos los códigos usados para generar las animaciones de la lista de reproducción Calcanim en el canal de YouTube Animathica.
Stars: ✭ 16 (-52.94%)
Mutual labels:  manim
manim document zh
一份manim中文教程文档 / manim tutorial document in Chinese (完善中)
Stars: ✭ 123 (+261.76%)
Mutual labels:  manim

License Java CI

VAlgoLang

VAlgoLang (formerly known as ManimDSL) is a domain specific language using Manim to create animations for data structures and algorithms.

Table of Contents:

Installation

VAlgoLang produces Python code that needs to run on Manim to generate the mp4 files. Please follow the documentation to install manim and follow the instructions according to your operating system.

Once manim is installed there are multiple ways to get VAlgoLang.

Mac OSX

VAlgoLang is avaliable on Homebrew using the instructions below:

    brew tap VAlgoLang/homebrew-valgolang
    brew install valgolang

Typing valgolang in your terminal should show give you access to the compiler.

Debian Based Systems

curl -sLO https://github.com/VAlgoLang/VAlgoLang/releases/download/latest/valgolang_1.0.SNAPSHOT-1_all.deb && sudo dpkg -i valgolang_1.0.SNAPSHOT-1_all.deb

Web Editor

If you do not want to install all the dependencies, you can use the web editor to write and compile code in VAlgoLang.

Building VAlgoLang Locally

To get started on your local machine, please do the following:

  1. Fork and clone the repository and open in your favourite editor. Since the interpreter is written in Kotlin, our choice is IntelliJ.
  2. Install Manim and its dependencies.
  3. Make changes to the compiler as you wish.
  4. Run the following command to build the JAR file for the compiler:
./gradlew build -x test

Remember that you'll need to do this every time you make a change and would like to see its effect.

  1. Run the following on a .val file to see whether your changes are working as expected:
./compile <your-file-name>.val

During development, it might be easier for you to read through the .py output file each time you make a change than to wait for Manim to generate a video. In this case, we recommend using the -p flag during compilation. For more on the command line arguments for VAlgoLang, see here.

Usage

Here is an example on how to use VAlgoLang:

    let stack = Stack<number>();
    stack.push(1);
    let x = stack.pop();

Save this file with the .val extension and run the compiler on it:

    java -jar valgolang.jar <your-file-name>.val out.mp4

This should save the animation to out.mp4, animating the stack with 1 being pushed and popped off the stack.

Documentation

Documentation is in progress at valgolang.github.io.

Contributing

We welcome all contributions! If you would like to contribute, please see the corresponding guidelines. By contributing, you are agreeing to our code of conduct.

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].