Skip to content

Latest commit

 

History

History
46 lines (39 loc) · 3.25 KB

README.md

File metadata and controls

46 lines (39 loc) · 3.25 KB

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