Quick Start¶
This page walks through three minimal scenes to get you up and running.
MTable — animated database table¶
from manim import *
from manim_databases import MTable, MTableStyle
class OrdersTable(Scene):
def construct(self):
table = MTable(
columns=["id", "customer", "status"],
rows=[
[1, "alice", "shipped"],
[2, "bob", "pending"],
],
primary_key="id",
style=MTableStyle.BLUE,
)
self.play(Create(table))
self.play(table.animate.insert_row([3, "carol", "shipped"]))
self.play(table.animate.update_cell(1, "status", "shipped"))
self.play(table.animate.delete_row(0))
Render it:
manim -ql my_scene.py OrdersTable
MBTree — search and insert¶
from manim import *
from manim_databases import MBTree, MBTreeStyle
class BTreeDemo(Scene):
def construct(self):
tree = MBTree.from_structure(
{
"keys": [10, 20],
"children": [
{"keys": [3, 7]},
{"keys": [12, 17]},
{"keys": [25, 30]},
],
},
order=4,
style=MBTreeStyle.BLUE,
)
self.play(Create(tree))
self.play(tree.animate.search(17)) # highlights search path
self.play(tree.animate.insert(15)) # smooth insert, no split
self.play(tree.animate.insert(14)) # triggers a leaf split
MBTree can also be built via sequential insertion:
tree = MBTree(order=4, keys=[10, 20, 5, 6, 12, 30, 7, 17])
Style variants¶
Every mobject ships with four predefined styles:
MTable(columns=[...], rows=[...], style=MTableStyle.PURPLE)
MBTree.from_structure({...}, style=MBTreeStyle.GREEN)
You can subclass MTableStyle._DefaultStyle or MBTreeStyle._DefaultStyle
to build custom styles.