Skip to content

A Manim plugin that contains common data structures to create Manimations.

License

Notifications You must be signed in to change notification settings

RyanMachado/manim-data-structures

 
 

Repository files navigation

Manim Data Structures

This repository is a fork of manim-data-structures. The code should be used as a reference for we're going for, but we are aiming to make the animation interface for our objects a little more fluid.

Background

Manim is a library for math animation written by Grant Sanderson (3b1b) to create videos for his YouTube channel. The open source community adopted his project and began developing the community version of Manim. What Manim provides is a set of Mobjects (mathematical objects) that can be instantiated and manipulated programatically as well as a rendering engine that can be called to convert the manipulations into videos.

Motivation

We are aiming to create Mobjects that implement common structures from computer science. For example similarly to how Manim provides a Plane Mobject we will provide a Variable Mobject that can hold an Mobject. Then we can build up more complex Mobjects such as arrays, pointers, linked lists, etc. These Mobjects will be able to be manipulated and animated in the same way as the Mobjects provided by Manim, thus allowing for the creation of videos that demonstrate the use of these data structures with very little additional effort.

Goals

The goal is to produce a Manim Plugin that can be installed and used by the community. The plugin will provide a set of Mobjects that can be used to create animations of common data structures. The plugin will also provide a set of animations that can be used to manipulate the Mobjects in a way that is consistent with the way the Mobjects are used in the real world. For example, when a variable is assigned a value, the value is copied into the variable.

Mobjects

TODO

  • Variable
  • Pointer
  • Array
  • List
  • Stack
  • Queue
  • Set
  • Map
  • Linked List
  • Nary-Tree
    • B-Trees
    • Heap

Reach Goals

  • Graph
    • Directed Graph
    • Undirected Graph
    • Weighted Graph
    • Directed Weighted Graph
    • Undirected Weighted Graph
  • Trie

Contributing

For information on how to contribute to this project, please see CONTRIBUTING.md.

Resources Links

About

A Manim plugin that contains common data structures to create Manimations.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%