Merge pull request #377 from 3b1b/package_refactor
Refactor into a package, add inline scenes, and add exit codes.
|
@ -14,87 +14,87 @@ as a convenience for scripts creating scenes for videos.
|
|||
"""
|
||||
|
||||
|
||||
from constants import *
|
||||
from manimlib.constants import *
|
||||
|
||||
from animation.animation import *
|
||||
from animation.composition import *
|
||||
from animation.creation import *
|
||||
from animation.indication import *
|
||||
from animation.movement import *
|
||||
from animation.numbers import *
|
||||
from animation.rotation import *
|
||||
from animation.specialized import *
|
||||
from animation.transform import *
|
||||
from animation.update import *
|
||||
from manimlib.animation.animation import *
|
||||
from manimlib.animation.composition import *
|
||||
from manimlib.animation.creation import *
|
||||
from manimlib.animation.indication import *
|
||||
from manimlib.animation.movement import *
|
||||
from manimlib.animation.numbers import *
|
||||
from manimlib.animation.rotation import *
|
||||
from manimlib.animation.specialized import *
|
||||
from manimlib.animation.transform import *
|
||||
from manimlib.animation.update import *
|
||||
|
||||
from camera.camera import *
|
||||
from camera.mapping_camera import *
|
||||
from camera.moving_camera import *
|
||||
from camera.three_d_camera import *
|
||||
from manimlib.camera.camera import *
|
||||
from manimlib.camera.mapping_camera import *
|
||||
from manimlib.camera.moving_camera import *
|
||||
from manimlib.camera.three_d_camera import *
|
||||
|
||||
from continual_animation.continual_animation import *
|
||||
from continual_animation.from_animation import *
|
||||
from continual_animation.numbers import *
|
||||
from continual_animation.update import *
|
||||
from manimlib.continual_animation.continual_animation import *
|
||||
from manimlib.continual_animation.from_animation import *
|
||||
from manimlib.continual_animation.numbers import *
|
||||
from manimlib.continual_animation.update import *
|
||||
|
||||
from mobject.coordinate_systems import *
|
||||
from mobject.frame import *
|
||||
from mobject.functions import *
|
||||
from mobject.geometry import *
|
||||
from mobject.matrix import *
|
||||
from mobject.mobject import *
|
||||
from mobject.number_line import *
|
||||
from mobject.numbers import *
|
||||
from mobject.probability import *
|
||||
from mobject.shape_matchers import *
|
||||
from mobject.svg.brace import *
|
||||
from mobject.svg.drawings import *
|
||||
from mobject.svg.svg_mobject import *
|
||||
from mobject.svg.tex_mobject import *
|
||||
from mobject.three_d_utils import *
|
||||
from mobject.three_dimensions import *
|
||||
from mobject.types.image_mobject import *
|
||||
from mobject.types.point_cloud_mobject import *
|
||||
from mobject.types.vectorized_mobject import *
|
||||
from mobject.updater import *
|
||||
from mobject.value_tracker import *
|
||||
from manimlib.mobject.coordinate_systems import *
|
||||
from manimlib.mobject.frame import *
|
||||
from manimlib.mobject.functions import *
|
||||
from manimlib.mobject.geometry import *
|
||||
from manimlib.mobject.matrix import *
|
||||
from manimlib.mobject.mobject import *
|
||||
from manimlib.mobject.number_line import *
|
||||
from manimlib.mobject.numbers import *
|
||||
from manimlib.mobject.probability import *
|
||||
from manimlib.mobject.shape_matchers import *
|
||||
from manimlib.mobject.svg.brace import *
|
||||
from manimlib.mobject.svg.drawings import *
|
||||
from manimlib.mobject.svg.svg_mobject import *
|
||||
from manimlib.mobject.svg.tex_mobject import *
|
||||
from manimlib.mobject.three_d_utils import *
|
||||
from manimlib.mobject.three_dimensions import *
|
||||
from manimlib.mobject.types.image_mobject import *
|
||||
from manimlib.mobject.types.point_cloud_mobject import *
|
||||
from manimlib.mobject.types.vectorized_mobject import *
|
||||
from manimlib.mobject.updater import *
|
||||
from manimlib.mobject.value_tracker import *
|
||||
|
||||
from for_3b1b_videos.common_scenes import *
|
||||
from for_3b1b_videos.pi_creature import *
|
||||
from for_3b1b_videos.pi_creature_animations import *
|
||||
from for_3b1b_videos.pi_creature_scene import *
|
||||
from manimlib.for_3b1b_videos.common_scenes import *
|
||||
from manimlib.for_3b1b_videos.pi_creature import *
|
||||
from manimlib.for_3b1b_videos.pi_creature_animations import *
|
||||
from manimlib.for_3b1b_videos.pi_creature_scene import *
|
||||
|
||||
from once_useful_constructs.arithmetic import *
|
||||
from once_useful_constructs.combinatorics import *
|
||||
from once_useful_constructs.complex_transformation_scene import *
|
||||
from once_useful_constructs.counting import *
|
||||
from once_useful_constructs.fractals import *
|
||||
from once_useful_constructs.graph_theory import *
|
||||
from once_useful_constructs.light import *
|
||||
from manimlib.once_useful_constructs.arithmetic import *
|
||||
from manimlib.once_useful_constructs.combinatorics import *
|
||||
from manimlib.once_useful_constructs.complex_transformation_scene import *
|
||||
from manimlib.once_useful_constructs.counting import *
|
||||
from manimlib.once_useful_constructs.fractals import *
|
||||
from manimlib.once_useful_constructs.graph_theory import *
|
||||
from manimlib.once_useful_constructs.light import *
|
||||
|
||||
from scene.graph_scene import *
|
||||
from scene.moving_camera_scene import *
|
||||
from scene.reconfigurable_scene import *
|
||||
from scene.scene import *
|
||||
from scene.sample_space_scene import *
|
||||
from scene.graph_scene import *
|
||||
from scene.scene_from_video import *
|
||||
from scene.three_d_scene import *
|
||||
from scene.vector_space_scene import *
|
||||
from scene.zoomed_scene import *
|
||||
from manimlib.scene.graph_scene import *
|
||||
from manimlib.scene.moving_camera_scene import *
|
||||
from manimlib.scene.reconfigurable_scene import *
|
||||
from manimlib.scene.scene import *
|
||||
from manimlib.scene.sample_space_scene import *
|
||||
from manimlib.scene.graph_scene import *
|
||||
from manimlib.scene.scene_from_video import *
|
||||
from manimlib.scene.three_d_scene import *
|
||||
from manimlib.scene.vector_space_scene import *
|
||||
from manimlib.scene.zoomed_scene import *
|
||||
|
||||
from utils.bezier import *
|
||||
from utils.color import *
|
||||
from utils.config_ops import *
|
||||
from utils.images import *
|
||||
from utils.iterables import *
|
||||
from utils.output_directory_getters import *
|
||||
from utils.paths import *
|
||||
from utils.rate_functions import *
|
||||
from utils.simple_functions import *
|
||||
from utils.sounds import *
|
||||
from utils.space_ops import *
|
||||
from utils.strings import *
|
||||
from manimlib.utils.bezier import *
|
||||
from manimlib.utils.color import *
|
||||
from manimlib.utils.config_ops import *
|
||||
from manimlib.utils.images import *
|
||||
from manimlib.utils.iterables import *
|
||||
from manimlib.utils.output_directory_getters import *
|
||||
from manimlib.utils.paths import *
|
||||
from manimlib.utils.rate_functions import *
|
||||
from manimlib.utils.simple_functions import *
|
||||
from manimlib.utils.sounds import *
|
||||
from manimlib.utils.space_ops import *
|
||||
from manimlib.utils.strings import *
|
||||
|
||||
# Non manim libraries that are also nice to have without thinking
|
||||
|
||||
|
|
BIN
example.png
Before Width: | Height: | Size: 35 KiB |
25
manim.py
|
@ -1,14 +1,17 @@
|
|||
#!/usr/bin/env python
|
||||
import config
|
||||
import extract_scene
|
||||
import stream_starter
|
||||
import manimlib.config
|
||||
import manimlib.extract_scene
|
||||
import manimlib.stream_starter
|
||||
|
||||
args = config.parse_cli()
|
||||
if not args.livestream:
|
||||
config = config.get_configuration(args)
|
||||
extract_scene.main(config)
|
||||
if __name__ == "__main__":
|
||||
args = manimlib.config.parse_cli()
|
||||
if not args.livestream:
|
||||
config = manimlib.config.get_configuration(args)
|
||||
manimlib.extract_scene.main(config)
|
||||
else:
|
||||
manimlib.stream_starter.start_livestream(
|
||||
to_twitch=args.to_twitch,
|
||||
twitch_key=args.twitch_key,
|
||||
)
|
||||
else:
|
||||
stream_starter.start_livestream(
|
||||
to_twitch=args.to_twitch,
|
||||
twitch_key=args.twitch_key,
|
||||
)
|
||||
manimlib.stream_starter.start_livestream()
|
||||
|
|
|
@ -1,11 +1,12 @@
|
|||
import numpy as np
|
||||
from copy import deepcopy
|
||||
|
||||
from constants import *
|
||||
from mobject.mobject import Mobject
|
||||
from utils.rate_functions import smooth
|
||||
from utils.config_ops import instantiate
|
||||
from utils.config_ops import digest_config
|
||||
import numpy as np
|
||||
|
||||
from manimlib.constants import *
|
||||
from manimlib.mobject.mobject import Mobject
|
||||
from manimlib.utils.config_ops import digest_config
|
||||
from manimlib.utils.config_ops import instantiate
|
||||
from manimlib.utils.rate_functions import smooth
|
||||
|
||||
|
||||
class Animation(object):
|
|
@ -1,19 +1,15 @@
|
|||
|
||||
|
||||
|
||||
import itertools as it
|
||||
import numpy as np
|
||||
|
||||
from constants import *
|
||||
|
||||
import warnings
|
||||
|
||||
from animation.animation import Animation
|
||||
from mobject.mobject import Group
|
||||
from mobject.mobject import Mobject
|
||||
from utils.bezier import inverse_interpolate
|
||||
from utils.config_ops import digest_config
|
||||
from utils.rate_functions import squish_rate_func
|
||||
import numpy as np
|
||||
|
||||
from manimlib.animation.animation import Animation
|
||||
from manimlib.constants import *
|
||||
from manimlib.mobject.mobject import Group
|
||||
from manimlib.mobject.mobject import Mobject
|
||||
from manimlib.utils.bezier import inverse_interpolate
|
||||
from manimlib.utils.config_ops import digest_config
|
||||
from manimlib.utils.rate_functions import squish_rate_func
|
||||
|
||||
|
||||
class EmptyAnimation(Animation):
|
|
@ -1,19 +1,16 @@
|
|||
|
||||
|
||||
import numpy as np
|
||||
|
||||
from constants import *
|
||||
|
||||
from animation.animation import Animation
|
||||
from mobject.svg.tex_mobject import TextMobject
|
||||
from mobject.types.vectorized_mobject import VMobject
|
||||
from mobject.types.vectorized_mobject import VectorizedPoint
|
||||
from animation.transform import Transform
|
||||
from utils.bezier import interpolate
|
||||
from utils.config_ops import digest_config
|
||||
from utils.paths import counterclockwise_path
|
||||
from utils.rate_functions import double_smooth
|
||||
from utils.rate_functions import smooth
|
||||
from manimlib.animation.animation import Animation
|
||||
from manimlib.animation.transform import Transform
|
||||
from manimlib.constants import *
|
||||
from manimlib.mobject.svg.tex_mobject import TextMobject
|
||||
from manimlib.mobject.types.vectorized_mobject import VMobject
|
||||
from manimlib.mobject.types.vectorized_mobject import VectorizedPoint
|
||||
from manimlib.utils.bezier import interpolate
|
||||
from manimlib.utils.config_ops import digest_config
|
||||
from manimlib.utils.paths import counterclockwise_path
|
||||
from manimlib.utils.rate_functions import double_smooth
|
||||
from manimlib.utils.rate_functions import smooth
|
||||
|
||||
# Drawing
|
||||
|
|
@ -1,27 +1,25 @@
|
|||
|
||||
from functools import reduce
|
||||
|
||||
import numpy as np
|
||||
|
||||
from constants import *
|
||||
|
||||
from animation.animation import Animation
|
||||
from animation.movement import Homotopy
|
||||
from animation.composition import AnimationGroup
|
||||
from animation.composition import Succession
|
||||
from animation.creation import ShowCreation
|
||||
from animation.creation import ShowPartial
|
||||
from animation.creation import FadeOut
|
||||
from animation.transform import Transform
|
||||
from mobject.mobject import Mobject
|
||||
from mobject.geometry import Circle
|
||||
from mobject.geometry import Dot
|
||||
from mobject.shape_matchers import SurroundingRectangle
|
||||
from utils.bezier import interpolate
|
||||
from utils.config_ops import digest_config
|
||||
from utils.rate_functions import squish_rate_func
|
||||
from utils.rate_functions import there_and_back
|
||||
from utils.rate_functions import wiggle
|
||||
from functools import reduce
|
||||
from manimlib.constants import *
|
||||
from manimlib.animation.animation import Animation
|
||||
from manimlib.animation.movement import Homotopy
|
||||
from manimlib.animation.composition import AnimationGroup
|
||||
from manimlib.animation.composition import Succession
|
||||
from manimlib.animation.creation import ShowCreation
|
||||
from manimlib.animation.creation import ShowPartial
|
||||
from manimlib.animation.creation import FadeOut
|
||||
from manimlib.animation.transform import Transform
|
||||
from manimlib.mobject.mobject import Mobject
|
||||
from manimlib.mobject.geometry import Circle
|
||||
from manimlib.mobject.geometry import Dot
|
||||
from manimlib.mobject.shape_matchers import SurroundingRectangle
|
||||
from manimlib.utils.bezier import interpolate
|
||||
from manimlib.utils.config_ops import digest_config
|
||||
from manimlib.utils.rate_functions import squish_rate_func
|
||||
from manimlib.utils.rate_functions import there_and_back
|
||||
from manimlib.utils.rate_functions import wiggle
|
||||
|
||||
|
||||
class FocusOn(Transform):
|
|
@ -1,7 +1,6 @@
|
|||
from constants import *
|
||||
|
||||
from animation.animation import Animation
|
||||
from utils.config_ops import digest_config
|
||||
from manimlib.animation.animation import Animation
|
||||
from manimlib.constants import *
|
||||
from manimlib.utils.config_ops import digest_config
|
||||
|
||||
|
||||
class Homotopy(Animation):
|
|
@ -1,7 +1,6 @@
|
|||
|
||||
from animation.animation import Animation
|
||||
from utils.bezier import interpolate
|
||||
from utils.config_ops import digest_config
|
||||
from manimlib.animation.animation import Animation
|
||||
from manimlib.utils.bezier import interpolate
|
||||
from manimlib.utils.config_ops import digest_config
|
||||
|
||||
|
||||
class ChangingDecimal(Animation):
|
|
@ -1,12 +1,9 @@
|
|||
|
||||
|
||||
import numpy as np
|
||||
|
||||
from constants import *
|
||||
|
||||
from animation.animation import Animation
|
||||
from animation.transform import Transform
|
||||
from utils.config_ops import digest_config
|
||||
from manimlib.animation.animation import Animation
|
||||
from manimlib.animation.transform import Transform
|
||||
from manimlib.constants import *
|
||||
from manimlib.utils.config_ops import digest_config
|
||||
|
||||
|
||||
class Rotating(Animation):
|
|
@ -1,16 +1,13 @@
|
|||
|
||||
|
||||
import numpy as np
|
||||
|
||||
from constants import *
|
||||
|
||||
from animation.transform import ApplyMethod
|
||||
from animation.composition import LaggedStart
|
||||
from mobject.svg.drawings import Car
|
||||
from mobject.types.vectorized_mobject import VGroup
|
||||
from mobject.geometry import Circle
|
||||
from utils.config_ops import digest_config
|
||||
from utils.space_ops import get_norm
|
||||
from manimlib.animation.composition import LaggedStart
|
||||
from manimlib.animation.transform import ApplyMethod
|
||||
from manimlib.constants import *
|
||||
from manimlib.mobject.geometry import Circle
|
||||
from manimlib.mobject.svg.drawings import Car
|
||||
from manimlib.mobject.types.vectorized_mobject import VGroup
|
||||
from manimlib.utils.config_ops import digest_config
|
||||
from manimlib.utils.space_ops import get_norm
|
||||
|
||||
|
||||
class MoveCar(ApplyMethod):
|
|
@ -1,21 +1,19 @@
|
|||
|
||||
|
||||
import inspect
|
||||
|
||||
import numpy as np
|
||||
|
||||
from constants import *
|
||||
|
||||
from animation.animation import Animation
|
||||
from mobject.mobject import Group
|
||||
from mobject.mobject import Mobject
|
||||
from utils.config_ops import digest_config
|
||||
from utils.iterables import adjacent_pairs
|
||||
from utils.paths import path_along_arc
|
||||
from utils.paths import straight_path
|
||||
from utils.config_ops import instantiate
|
||||
from utils.rate_functions import smooth
|
||||
from utils.rate_functions import squish_rate_func
|
||||
from utils.space_ops import complex_to_R3
|
||||
from manimlib.animation.animation import Animation
|
||||
from manimlib.constants import *
|
||||
from manimlib.mobject.mobject import Group
|
||||
from manimlib.mobject.mobject import Mobject
|
||||
from manimlib.utils.config_ops import digest_config
|
||||
from manimlib.utils.config_ops import instantiate
|
||||
from manimlib.utils.iterables import adjacent_pairs
|
||||
from manimlib.utils.paths import path_along_arc
|
||||
from manimlib.utils.paths import straight_path
|
||||
from manimlib.utils.rate_functions import smooth
|
||||
from manimlib.utils.rate_functions import squish_rate_func
|
||||
from manimlib.utils.space_ops import complex_to_R3
|
||||
|
||||
|
||||
class Transform(Animation):
|
|
@ -1,9 +1,6 @@
|
|||
|
||||
|
||||
from constants import *
|
||||
|
||||
from animation.animation import Animation
|
||||
from utils.config_ops import digest_config
|
||||
from manimlib.animation.animation import Animation
|
||||
from manimlib.constants import *
|
||||
from manimlib.utils.config_ops import digest_config
|
||||
|
||||
|
||||
class UpdateFromFunc(Animation):
|
|
@ -1,30 +1,29 @@
|
|||
|
||||
from functools import reduce
|
||||
import itertools as it
|
||||
import numpy as np
|
||||
import operator as op
|
||||
|
||||
import time
|
||||
|
||||
from PIL import Image
|
||||
from scipy.spatial.distance import pdist
|
||||
import cairo
|
||||
import numpy as np
|
||||
|
||||
from constants import *
|
||||
from mobject.types.image_mobject import AbstractImageMobject
|
||||
from mobject.mobject import Mobject
|
||||
from mobject.types.point_cloud_mobject import PMobject
|
||||
from mobject.types.vectorized_mobject import VMobject
|
||||
from utils.color import color_to_int_rgba
|
||||
from utils.color import rgb_to_hex
|
||||
from utils.config_ops import digest_config
|
||||
from utils.images import get_full_raster_image_path
|
||||
from utils.iterables import batch_by_property
|
||||
from utils.iterables import list_difference_update
|
||||
from utils.iterables import remove_list_redundancies
|
||||
from utils.simple_functions import fdiv
|
||||
from utils.space_ops import angle_of_vector
|
||||
from utils.space_ops import get_norm
|
||||
from functools import reduce
|
||||
from manimlib.constants import *
|
||||
from manimlib.mobject.types.image_mobject import AbstractImageMobject
|
||||
from manimlib.mobject.mobject import Mobject
|
||||
from manimlib.mobject.types.point_cloud_mobject import PMobject
|
||||
from manimlib.mobject.types.vectorized_mobject import VMobject
|
||||
from manimlib.utils.color import color_to_int_rgba
|
||||
from manimlib.utils.color import rgb_to_hex
|
||||
from manimlib.utils.config_ops import digest_config
|
||||
from manimlib.utils.images import get_full_raster_image_path
|
||||
from manimlib.utils.iterables import batch_by_property
|
||||
from manimlib.utils.iterables import list_difference_update
|
||||
from manimlib.utils.iterables import remove_list_redundancies
|
||||
from manimlib.utils.simple_functions import fdiv
|
||||
from manimlib.utils.space_ops import angle_of_vector
|
||||
from manimlib.utils.space_ops import get_norm
|
||||
|
||||
|
||||
class Camera(object):
|
|
@ -1,11 +1,9 @@
|
|||
|
||||
|
||||
import numpy as np
|
||||
|
||||
from camera.camera import Camera
|
||||
from mobject.types.vectorized_mobject import VMobject
|
||||
from utils.config_ops import DictAsObject
|
||||
from utils.config_ops import digest_config
|
||||
from manimlib.camera.camera import Camera
|
||||
from manimlib.mobject.types.vectorized_mobject import VMobject
|
||||
from manimlib.utils.config_ops import DictAsObject
|
||||
from manimlib.utils.config_ops import digest_config
|
||||
|
||||
# TODO: Add an attribute to mobjects under which they can specify that they should just
|
||||
# map their centers but remain otherwise undistorted (useful for labels, etc.)
|
|
@ -1,15 +1,12 @@
|
|||
|
||||
|
||||
from constants import FRAME_HEIGHT
|
||||
from constants import FRAME_WIDTH
|
||||
from constants import ORIGIN
|
||||
from constants import WHITE
|
||||
|
||||
from camera.camera import Camera
|
||||
from mobject.frame import ScreenRectangle
|
||||
from mobject.types.vectorized_mobject import VGroup
|
||||
from mobject.types.vectorized_mobject import VectorizedPoint
|
||||
from utils.config_ops import digest_config
|
||||
from manimlib.camera.camera import Camera
|
||||
from manimlib.constants import FRAME_HEIGHT
|
||||
from manimlib.constants import FRAME_WIDTH
|
||||
from manimlib.constants import ORIGIN
|
||||
from manimlib.constants import WHITE
|
||||
from manimlib.mobject.frame import ScreenRectangle
|
||||
from manimlib.mobject.types.vectorized_mobject import VGroup
|
||||
from manimlib.mobject.types.vectorized_mobject import VectorizedPoint
|
||||
from manimlib.utils.config_ops import digest_config
|
||||
|
||||
|
||||
# TODO, think about how to incorporate perspective
|
|
@ -1,7 +1,5 @@
|
|||
|
||||
|
||||
from camera.moving_camera import MovingCamera
|
||||
from utils.iterables import list_difference_update
|
||||
from manimlib.camera.moving_camera import MovingCamera
|
||||
from manimlib.utils.iterables import list_difference_update
|
||||
|
||||
|
||||
class MultiCamera(MovingCamera):
|
|
@ -1,24 +1,19 @@
|
|||
|
||||
|
||||
import numpy as np
|
||||
|
||||
from constants import *
|
||||
|
||||
from camera.camera import Camera
|
||||
from mobject.types.point_cloud_mobject import Point
|
||||
from mobject.types.vectorized_mobject import VMobject
|
||||
from mobject.three_d_utils import get_3d_vmob_start_corner
|
||||
from mobject.three_d_utils import get_3d_vmob_start_corner_unit_normal
|
||||
from mobject.three_d_utils import get_3d_vmob_end_corner
|
||||
from mobject.three_d_utils import get_3d_vmob_end_corner_unit_normal
|
||||
from mobject.value_tracker import ValueTracker
|
||||
|
||||
from utils.color import get_shaded_rgb
|
||||
# from utils.config_ops import digest_config
|
||||
from utils.space_ops import rotation_about_z
|
||||
from utils.space_ops import rotation_matrix
|
||||
from utils.space_ops import center_of_mass
|
||||
from utils.simple_functions import clip_in_place
|
||||
from manimlib.camera.camera import Camera
|
||||
from manimlib.constants import *
|
||||
from manimlib.mobject.three_d_utils import get_3d_vmob_end_corner
|
||||
from manimlib.mobject.three_d_utils import get_3d_vmob_end_corner_unit_normal
|
||||
from manimlib.mobject.three_d_utils import get_3d_vmob_start_corner
|
||||
from manimlib.mobject.three_d_utils import get_3d_vmob_start_corner_unit_normal
|
||||
from manimlib.mobject.types.point_cloud_mobject import Point
|
||||
from manimlib.mobject.types.vectorized_mobject import VMobject
|
||||
from manimlib.mobject.value_tracker import ValueTracker
|
||||
from manimlib.utils.color import get_shaded_rgb
|
||||
from manimlib.utils.simple_functions import clip_in_place
|
||||
from manimlib.utils.space_ops import center_of_mass
|
||||
from manimlib.utils.space_ops import rotation_about_z
|
||||
from manimlib.utils.space_ops import rotation_matrix
|
||||
|
||||
|
||||
class ThreeDCamera(Camera):
|
|
@ -1,9 +1,11 @@
|
|||
#!/usr/bin/env python
|
||||
import argparse
|
||||
import colour
|
||||
import constants
|
||||
import importlib
|
||||
import os
|
||||
import sys
|
||||
import types
|
||||
|
||||
import manimlib.constants
|
||||
|
||||
|
||||
def parse_cli():
|
||||
|
@ -70,6 +72,21 @@ def parse_cli():
|
|||
sys.exit(2)
|
||||
|
||||
|
||||
def get_module(file_name):
|
||||
if file_name == "-":
|
||||
module = types.ModuleType("InputModule")
|
||||
code = "from big_ol_pile_of_manim_imports import *\n\n" + sys.stdin.read()
|
||||
try:
|
||||
exec(code, module.__dict__)
|
||||
return module
|
||||
except Exception as e:
|
||||
print(f"Failed to render scene: {str(e)}")
|
||||
sys.exit(2)
|
||||
else:
|
||||
module_name = file_name.replace(".py", "").replace(os.sep, ".")
|
||||
return importlib.import_module(module_name)
|
||||
|
||||
|
||||
def get_configuration(args):
|
||||
if args.output_name is not None:
|
||||
output_name_root, output_name_ext = os.path.splitext(
|
||||
|
@ -86,7 +103,7 @@ def get_configuration(args):
|
|||
output_name = args.output_name
|
||||
|
||||
config = {
|
||||
"file": args.file,
|
||||
"module": get_module(args.file),
|
||||
"scene_name": args.scene_name,
|
||||
"open_video_upon_completion": args.preview,
|
||||
"show_file_in_finder": args.show_file_in_finder,
|
||||
|
@ -108,14 +125,14 @@ def get_configuration(args):
|
|||
# Camera configuration
|
||||
config["camera_config"] = {}
|
||||
if args.low_quality:
|
||||
config["camera_config"].update(constants.LOW_QUALITY_CAMERA_CONFIG)
|
||||
config["frame_duration"] = constants.LOW_QUALITY_FRAME_DURATION
|
||||
config["camera_config"].update(manimlib.constants.LOW_QUALITY_CAMERA_CONFIG)
|
||||
config["frame_duration"] = manimlib.constants.LOW_QUALITY_FRAME_DURATION
|
||||
elif args.medium_quality:
|
||||
config["camera_config"].update(constants.MEDIUM_QUALITY_CAMERA_CONFIG)
|
||||
config["frame_duration"] = constants.MEDIUM_QUALITY_FRAME_DURATION
|
||||
config["camera_config"].update(manimlib.constants.MEDIUM_QUALITY_CAMERA_CONFIG)
|
||||
config["frame_duration"] = manimlib.constants.MEDIUM_QUALITY_FRAME_DURATION
|
||||
else:
|
||||
config["camera_config"].update(constants.PRODUCTION_QUALITY_CAMERA_CONFIG)
|
||||
config["frame_duration"] = constants.PRODUCTION_QUALITY_FRAME_DURATION
|
||||
config["camera_config"].update(manimlib.constants.PRODUCTION_QUALITY_CAMERA_CONFIG)
|
||||
config["frame_duration"] = manimlib.constants.PRODUCTION_QUALITY_FRAME_DURATION
|
||||
|
||||
# If the resolution was passed in via -r
|
||||
if args.resolution:
|
|
@ -1,5 +1,5 @@
|
|||
import os
|
||||
import numpy as np
|
||||
import os
|
||||
|
||||
# Initialize directories
|
||||
env_MEDIA_DIR = os.getenv("MEDIA_DIR")
|
|
@ -1,4 +1,4 @@
|
|||
from utils.config_ops import digest_config
|
||||
from manimlib.utils.config_ops import digest_config
|
||||
|
||||
# Currently, this is only used by both Scene and Mobject.
|
||||
# Still, we abstract its functionality here, albeit purely nominally.
|
|
@ -1,10 +1,10 @@
|
|||
import copy
|
||||
|
||||
from constants import *
|
||||
from mobject.mobject import Group
|
||||
from mobject.mobject import Mobject
|
||||
from utils.config_ops import digest_config
|
||||
from utils.config_ops import instantiate
|
||||
from manimlib.constants import *
|
||||
from manimlib.mobject.mobject import Group
|
||||
from manimlib.mobject.mobject import Mobject
|
||||
from manimlib.utils.config_ops import digest_config
|
||||
from manimlib.utils.config_ops import instantiate
|
||||
|
||||
|
||||
class ContinualAnimation(object):
|
|
@ -1,6 +1,6 @@
|
|||
|
||||
|
||||
from continual_animation.continual_animation import ContinualAnimation
|
||||
from manimlib.continual_animation.continual_animation import ContinualAnimation
|
||||
|
||||
|
||||
class NormalAnimationAsContinualAnimation(ContinualAnimation):
|
|
@ -1,7 +1,7 @@
|
|||
|
||||
|
||||
from continual_animation.from_animation import NormalAnimationAsContinualAnimation
|
||||
from animation.numbers import ChangingDecimal
|
||||
from manimlib.animation.numbers import ChangingDecimal
|
||||
from manimlib.continual_animation.from_animation import NormalAnimationAsContinualAnimation
|
||||
|
||||
|
||||
class ContinualChangingDecimal(NormalAnimationAsContinualAnimation):
|
|
@ -1,8 +1,8 @@
|
|||
|
||||
|
||||
from continual_animation.continual_animation import ContinualAnimation
|
||||
from animation.update import MaintainPositionRelativeTo
|
||||
from mobject.value_tracker import ValueTracker
|
||||
from manimlib.animation.update import MaintainPositionRelativeTo
|
||||
from manimlib.continual_animation.continual_animation import ContinualAnimation
|
||||
from manimlib.mobject.value_tracker import ValueTracker
|
||||
|
||||
|
||||
class ContinualUpdate(ContinualAnimation):
|
|
@ -1,6 +1,3 @@
|
|||
# !/usr/bin/env python
|
||||
|
||||
import constants
|
||||
import importlib
|
||||
import inspect
|
||||
import itertools as it
|
||||
|
@ -9,9 +6,10 @@ import subprocess as sp
|
|||
import sys
|
||||
import traceback
|
||||
|
||||
from scene.scene import Scene
|
||||
from utils.sounds import play_error_sound
|
||||
from utils.sounds import play_finish_sound
|
||||
from manimlib.scene.scene import Scene
|
||||
from manimlib.utils.sounds import play_error_sound
|
||||
from manimlib.utils.sounds import play_finish_sound
|
||||
import manimlib.constants
|
||||
|
||||
|
||||
def handle_scene(scene, **config):
|
||||
|
@ -51,13 +49,15 @@ def handle_scene(scene, **config):
|
|||
sys.stdout = curr_stdout
|
||||
|
||||
|
||||
def is_scene(obj):
|
||||
def is_child_scene(obj, module):
|
||||
if not inspect.isclass(obj):
|
||||
return False
|
||||
if not issubclass(obj, Scene):
|
||||
return False
|
||||
if obj == Scene:
|
||||
return False
|
||||
if not obj.__module__.startswith(module.__name__):
|
||||
return False
|
||||
return True
|
||||
|
||||
|
||||
|
@ -68,45 +68,41 @@ def prompt_user_for_choice(name_to_obj):
|
|||
print("%d: %s" % (count, name))
|
||||
num_to_name[count] = name
|
||||
try:
|
||||
user_input = input(constants.CHOOSE_NUMBER_MESSAGE)
|
||||
user_input = input(manimlib.constants.CHOOSE_NUMBER_MESSAGE)
|
||||
return [
|
||||
name_to_obj[num_to_name[int(num_str)]]
|
||||
for num_str in user_input.split(",")
|
||||
]
|
||||
except KeyError:
|
||||
print(constants.INVALID_NUMBER_MESSAGE)
|
||||
sys.exit()
|
||||
user_input = input(constants.CHOOSE_NUMBER_MESSAGE)
|
||||
print(manimlib.constants.INVALID_NUMBER_MESSAGE)
|
||||
sys.exit(2)
|
||||
user_input = input(manimlib.constants.CHOOSE_NUMBER_MESSAGE)
|
||||
return [
|
||||
name_to_obj[num_to_name[int(num_str)]]
|
||||
for num_str in user_input.split(",")
|
||||
]
|
||||
except EOFError:
|
||||
sys.exit(1)
|
||||
|
||||
|
||||
def get_scene_classes(scene_names_to_classes, config):
|
||||
if len(scene_names_to_classes) == 0:
|
||||
print(constants.NO_SCENE_MESSAGE)
|
||||
print(manimlib.constants.NO_SCENE_MESSAGE)
|
||||
return []
|
||||
if len(scene_names_to_classes) == 1:
|
||||
return list(scene_names_to_classes.values())
|
||||
if config["scene_name"] in scene_names_to_classes:
|
||||
return [scene_names_to_classes[config["scene_name"]]]
|
||||
if config["scene_name"] != "":
|
||||
print(constants.SCENE_NOT_FOUND_MESSAGE)
|
||||
print(manimlib.constants.SCENE_NOT_FOUND_MESSAGE)
|
||||
return []
|
||||
if config["write_all"]:
|
||||
return list(scene_names_to_classes.values())
|
||||
return prompt_user_for_choice(scene_names_to_classes)
|
||||
|
||||
|
||||
def get_module(file_name):
|
||||
module_name = file_name.replace(".py", "").replace(os.sep, ".")
|
||||
return importlib.import_module(module_name)
|
||||
|
||||
|
||||
def main(config):
|
||||
module = get_module(config["file"])
|
||||
scene_names_to_classes = dict(inspect.getmembers(module, is_scene))
|
||||
module = config["module"]
|
||||
scene_names_to_classes = dict(
|
||||
inspect.getmembers(module, lambda x: is_child_scene(x, module)))
|
||||
|
||||
scene_kwargs = dict([
|
||||
(key, config[key])
|
||||
|
@ -132,11 +128,13 @@ def main(config):
|
|||
try:
|
||||
handle_scene(SceneClass(**scene_kwargs), **config)
|
||||
play_finish_sound()
|
||||
sys.exit(0)
|
||||
except Exception:
|
||||
print("\n\n")
|
||||
traceback.print_exc()
|
||||
print("\n\n")
|
||||
play_error_sound()
|
||||
sys.exit(2)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
Before Width: | Height: | Size: 716 B After Width: | Height: | Size: 716 B |
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.3 KiB |
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 1.8 KiB |
|
@ -1,33 +1,30 @@
|
|||
|
||||
|
||||
import random
|
||||
import string
|
||||
|
||||
from constants import *
|
||||
|
||||
from animation.animation import Animation
|
||||
from animation.composition import LaggedStart
|
||||
from animation.creation import DrawBorderThenFill
|
||||
from animation.creation import Write
|
||||
from animation.creation import FadeIn
|
||||
from animation.creation import FadeOut
|
||||
from continual_animation.continual_animation import ContinualMovement
|
||||
from mobject.svg.tex_mobject import TextMobject
|
||||
from mobject.types.vectorized_mobject import VGroup
|
||||
from scene.scene import Scene
|
||||
from scene.moving_camera_scene import MovingCameraScene
|
||||
from for_3b1b_videos.pi_creature_animations import Blink
|
||||
from for_3b1b_videos.pi_creature import Mortimer
|
||||
from for_3b1b_videos.pi_creature import Randolph
|
||||
from for_3b1b_videos.pi_creature_scene import PiCreatureScene
|
||||
from mobject.geometry import Line
|
||||
from mobject.geometry import DashedLine
|
||||
from mobject.geometry import Rectangle
|
||||
from mobject.geometry import Square
|
||||
from mobject.svg.drawings import PatreonLogo
|
||||
from mobject.svg.drawings import Logo
|
||||
from utils.space_ops import get_norm
|
||||
from utils.space_ops import normalize
|
||||
from manimlib.animation.animation import Animation
|
||||
from manimlib.animation.composition import LaggedStart
|
||||
from manimlib.animation.creation import DrawBorderThenFill
|
||||
from manimlib.animation.creation import FadeIn
|
||||
from manimlib.animation.creation import FadeOut
|
||||
from manimlib.animation.creation import Write
|
||||
from manimlib.constants import *
|
||||
from manimlib.continual_animation.continual_animation import ContinualMovement
|
||||
from manimlib.for_3b1b_videos.pi_creature import Mortimer
|
||||
from manimlib.for_3b1b_videos.pi_creature import Randolph
|
||||
from manimlib.for_3b1b_videos.pi_creature_animations import Blink
|
||||
from manimlib.for_3b1b_videos.pi_creature_scene import PiCreatureScene
|
||||
from manimlib.mobject.geometry import DashedLine
|
||||
from manimlib.mobject.geometry import Line
|
||||
from manimlib.mobject.geometry import Rectangle
|
||||
from manimlib.mobject.geometry import Square
|
||||
from manimlib.mobject.svg.drawings import Logo
|
||||
from manimlib.mobject.svg.drawings import PatreonLogo
|
||||
from manimlib.mobject.svg.tex_mobject import TextMobject
|
||||
from manimlib.mobject.types.vectorized_mobject import VGroup
|
||||
from manimlib.scene.moving_camera_scene import MovingCameraScene
|
||||
from manimlib.scene.scene import Scene
|
||||
from manimlib.utils.space_ops import get_norm
|
||||
from manimlib.utils.space_ops import normalize
|
||||
|
||||
|
||||
class OpeningQuote(Scene):
|
|
@ -1,10 +1,10 @@
|
|||
import numpy as np
|
||||
import warnings
|
||||
|
||||
from constants import *
|
||||
import numpy as np
|
||||
|
||||
from mobject.types.vectorized_mobject import VGroup
|
||||
from for_3b1b_videos.pi_creature import PiCreature
|
||||
from manimlib.constants import *
|
||||
from manimlib.for_3b1b_videos.pi_creature import PiCreature
|
||||
from manimlib.mobject.types.vectorized_mobject import VGroup
|
||||
|
||||
class PiCreatureClass(VGroup):
|
||||
CONFIG = {
|
|
@ -1,22 +1,20 @@
|
|||
import numpy as np
|
||||
import warnings
|
||||
import os
|
||||
import warnings
|
||||
|
||||
from constants import *
|
||||
import numpy as np
|
||||
|
||||
from mobject.mobject import Mobject
|
||||
from mobject.svg.svg_mobject import SVGMobject
|
||||
from mobject.svg.tex_mobject import TextMobject
|
||||
from mobject.types.vectorized_mobject import VGroup
|
||||
from mobject.types.vectorized_mobject import VMobject
|
||||
|
||||
from mobject.svg.drawings import ThoughtBubble
|
||||
|
||||
from animation.transform import Transform
|
||||
from utils.config_ops import digest_config
|
||||
from utils.rate_functions import squish_rate_func
|
||||
from utils.rate_functions import there_and_back
|
||||
from utils.space_ops import get_norm
|
||||
from manimlib.animation.transform import Transform
|
||||
from manimlib.constants import *
|
||||
from manimlib.mobject.mobject import Mobject
|
||||
from manimlib.mobject.svg.drawings import ThoughtBubble
|
||||
from manimlib.mobject.svg.svg_mobject import SVGMobject
|
||||
from manimlib.mobject.svg.tex_mobject import TextMobject
|
||||
from manimlib.mobject.types.vectorized_mobject import VGroup
|
||||
from manimlib.mobject.types.vectorized_mobject import VMobject
|
||||
from manimlib.utils.config_ops import digest_config
|
||||
from manimlib.utils.rate_functions import squish_rate_func
|
||||
from manimlib.utils.rate_functions import there_and_back
|
||||
from manimlib.utils.space_ops import get_norm
|
||||
|
||||
pi_creature_dir_maybe = os.path.join(MEDIA_DIR, "designs", "PiCreature")
|
||||
if os.path.exists(pi_creature_dir_maybe):
|
|
@ -1,23 +1,17 @@
|
|||
|
||||
|
||||
from constants import *
|
||||
|
||||
from mobject.mobject import Group
|
||||
|
||||
from mobject.svg.drawings import SpeechBubble
|
||||
|
||||
from animation.animation import Animation
|
||||
from animation.creation import ShowCreation
|
||||
from animation.creation import Write
|
||||
from animation.composition import AnimationGroup
|
||||
from animation.transform import ApplyMethod
|
||||
from animation.creation import FadeOut
|
||||
from animation.transform import MoveToTarget
|
||||
from utils.config_ops import digest_config
|
||||
from utils.rate_functions import squish_rate_func
|
||||
from utils.rate_functions import there_and_back
|
||||
|
||||
from for_3b1b_videos.pi_class import PiCreatureClass
|
||||
from manimlib.animation.animation import Animation
|
||||
from manimlib.animation.composition import AnimationGroup
|
||||
from manimlib.animation.creation import FadeOut
|
||||
from manimlib.animation.creation import ShowCreation
|
||||
from manimlib.animation.creation import Write
|
||||
from manimlib.animation.transform import ApplyMethod
|
||||
from manimlib.animation.transform import MoveToTarget
|
||||
from manimlib.constants import *
|
||||
from manimlib.for_3b1b_videos.pi_class import PiCreatureClass
|
||||
from manimlib.mobject.mobject import Group
|
||||
from manimlib.mobject.svg.drawings import SpeechBubble
|
||||
from manimlib.utils.config_ops import digest_config
|
||||
from manimlib.utils.rate_functions import squish_rate_func
|
||||
from manimlib.utils.rate_functions import there_and_back
|
||||
|
||||
|
||||
class Blink(ApplyMethod):
|
|
@ -1,30 +1,26 @@
|
|||
|
||||
|
||||
import itertools as it
|
||||
import numpy as np
|
||||
import random
|
||||
|
||||
from constants import *
|
||||
import numpy as np
|
||||
|
||||
from mobject.types.vectorized_mobject import VGroup
|
||||
|
||||
from mobject.frame import ScreenRectangle
|
||||
from mobject.svg.drawings import SpeechBubble
|
||||
from mobject.svg.drawings import ThoughtBubble
|
||||
|
||||
from animation.transform import ApplyMethod
|
||||
from animation.transform import ReplacementTransform
|
||||
from animation.transform import Transform
|
||||
from for_3b1b_videos.pi_creature import PiCreature
|
||||
from for_3b1b_videos.pi_creature import Mortimer
|
||||
from for_3b1b_videos.pi_creature import Randolph
|
||||
from for_3b1b_videos.pi_creature_animations import Blink
|
||||
from for_3b1b_videos.pi_creature_animations import PiCreatureBubbleIntroduction
|
||||
from for_3b1b_videos.pi_creature_animations import RemovePiCreatureBubble
|
||||
from scene.scene import Scene
|
||||
from utils.rate_functions import squish_rate_func
|
||||
from utils.rate_functions import there_and_back
|
||||
from utils.space_ops import get_norm
|
||||
from manimlib.animation.transform import ApplyMethod
|
||||
from manimlib.animation.transform import ReplacementTransform
|
||||
from manimlib.animation.transform import Transform
|
||||
from manimlib.constants import *
|
||||
from manimlib.for_3b1b_videos.pi_creature import Mortimer
|
||||
from manimlib.for_3b1b_videos.pi_creature import PiCreature
|
||||
from manimlib.for_3b1b_videos.pi_creature import Randolph
|
||||
from manimlib.for_3b1b_videos.pi_creature_animations import Blink
|
||||
from manimlib.for_3b1b_videos.pi_creature_animations import PiCreatureBubbleIntroduction
|
||||
from manimlib.for_3b1b_videos.pi_creature_animations import RemovePiCreatureBubble
|
||||
from manimlib.mobject.frame import ScreenRectangle
|
||||
from manimlib.mobject.svg.drawings import SpeechBubble
|
||||
from manimlib.mobject.svg.drawings import ThoughtBubble
|
||||
from manimlib.mobject.types.vectorized_mobject import VGroup
|
||||
from manimlib.scene.scene import Scene
|
||||
from manimlib.utils.rate_functions import squish_rate_func
|
||||
from manimlib.utils.rate_functions import there_and_back
|
||||
from manimlib.utils.space_ops import get_norm
|
||||
|
||||
|
||||
class PiCreatureScene(Scene):
|
1
manimlib/media_dir.txt
Normal file
|
@ -0,0 +1 @@
|
|||
media
|
|
@ -1,18 +1,15 @@
|
|||
|
||||
|
||||
import numpy as np
|
||||
|
||||
from constants import *
|
||||
|
||||
from mobject.functions import ParametricFunction
|
||||
from mobject.geometry import Arrow
|
||||
from mobject.geometry import Line
|
||||
from mobject.number_line import NumberLine
|
||||
from mobject.svg.tex_mobject import TexMobject
|
||||
from mobject.types.vectorized_mobject import VGroup
|
||||
from mobject.types.vectorized_mobject import VMobject
|
||||
from utils.config_ops import digest_config
|
||||
from utils.space_ops import angle_of_vector
|
||||
from manimlib.constants import *
|
||||
from manimlib.mobject.functions import ParametricFunction
|
||||
from manimlib.mobject.geometry import Arrow
|
||||
from manimlib.mobject.geometry import Line
|
||||
from manimlib.mobject.number_line import NumberLine
|
||||
from manimlib.mobject.svg.tex_mobject import TexMobject
|
||||
from manimlib.mobject.types.vectorized_mobject import VGroup
|
||||
from manimlib.mobject.types.vectorized_mobject import VMobject
|
||||
from manimlib.utils.config_ops import digest_config
|
||||
from manimlib.utils.space_ops import angle_of_vector
|
||||
|
||||
# TODO: There should be much more code reuse between Axes, NumberPlane and GraphScene
|
||||
|
|
@ -1,8 +1,6 @@
|
|||
|
||||
|
||||
from constants import *
|
||||
from mobject.geometry import Rectangle
|
||||
from utils.config_ops import digest_config
|
||||
from manimlib.constants import *
|
||||
from manimlib.mobject.geometry import Rectangle
|
||||
from manimlib.utils.config_ops import digest_config
|
||||
|
||||
|
||||
class ScreenRectangle(Rectangle):
|
|
@ -1,9 +1,6 @@
|
|||
|
||||
|
||||
from constants import *
|
||||
|
||||
from mobject.types.vectorized_mobject import VMobject
|
||||
from utils.config_ops import digest_config
|
||||
from manimlib.constants import *
|
||||
from manimlib.mobject.types.vectorized_mobject import VMobject
|
||||
from manimlib.utils.config_ops import digest_config
|
||||
|
||||
|
||||
class ParametricFunction(VMobject):
|
|
@ -1,22 +1,20 @@
|
|||
|
||||
|
||||
from constants import *
|
||||
|
||||
import itertools as it
|
||||
|
||||
import numpy as np
|
||||
|
||||
from mobject.mobject import Mobject
|
||||
from mobject.types.vectorized_mobject import VGroup
|
||||
from mobject.types.vectorized_mobject import VMobject
|
||||
from utils.bezier import interpolate
|
||||
from utils.config_ops import digest_config
|
||||
from utils.config_ops import digest_locals
|
||||
from utils.paths import path_along_arc
|
||||
from utils.space_ops import angle_of_vector
|
||||
from utils.space_ops import center_of_mass
|
||||
from utils.space_ops import compass_directions
|
||||
from utils.space_ops import rotate_vector
|
||||
from utils.space_ops import get_norm
|
||||
from manimlib.constants import *
|
||||
from manimlib.mobject.mobject import Mobject
|
||||
from manimlib.mobject.types.vectorized_mobject import VGroup
|
||||
from manimlib.mobject.types.vectorized_mobject import VMobject
|
||||
from manimlib.utils.bezier import interpolate
|
||||
from manimlib.utils.config_ops import digest_config
|
||||
from manimlib.utils.config_ops import digest_locals
|
||||
from manimlib.utils.paths import path_along_arc
|
||||
from manimlib.utils.space_ops import angle_of_vector
|
||||
from manimlib.utils.space_ops import center_of_mass
|
||||
from manimlib.utils.space_ops import compass_directions
|
||||
from manimlib.utils.space_ops import get_norm
|
||||
from manimlib.utils.space_ops import rotate_vector
|
||||
|
||||
|
||||
class Arc(VMobject):
|
|
@ -1,16 +1,13 @@
|
|||
|
||||
|
||||
import numpy as np
|
||||
|
||||
from mobject.numbers import DecimalNumber
|
||||
from mobject.numbers import Integer
|
||||
from mobject.svg.tex_mobject import TexMobject
|
||||
from mobject.svg.tex_mobject import TextMobject
|
||||
from mobject.types.vectorized_mobject import VGroup
|
||||
from mobject.types.vectorized_mobject import VMobject
|
||||
from mobject.shape_matchers import BackgroundRectangle
|
||||
|
||||
from constants import *
|
||||
from manimlib.constants import *
|
||||
from manimlib.mobject.numbers import DecimalNumber
|
||||
from manimlib.mobject.numbers import Integer
|
||||
from manimlib.mobject.shape_matchers import BackgroundRectangle
|
||||
from manimlib.mobject.svg.tex_mobject import TexMobject
|
||||
from manimlib.mobject.svg.tex_mobject import TextMobject
|
||||
from manimlib.mobject.types.vectorized_mobject import VGroup
|
||||
from manimlib.mobject.types.vectorized_mobject import VMobject
|
||||
|
||||
VECTOR_LABEL_SCALE_FACTOR = 0.8
|
||||
|
|
@ -1,27 +1,27 @@
|
|||
|
||||
from functools import reduce
|
||||
import copy
|
||||
import itertools as it
|
||||
import numpy as np
|
||||
import operator as op
|
||||
import os
|
||||
import random
|
||||
|
||||
from colour import Color
|
||||
import numpy as np
|
||||
|
||||
from constants import *
|
||||
from container.container import Container
|
||||
from utils.bezier import interpolate
|
||||
from utils.color import color_gradient
|
||||
from utils.color import color_to_rgb
|
||||
from utils.color import interpolate_color
|
||||
from utils.iterables import list_update
|
||||
from utils.iterables import remove_list_redundancies
|
||||
from utils.paths import straight_path
|
||||
from utils.space_ops import angle_of_vector
|
||||
from utils.space_ops import rotation_matrix
|
||||
from utils.simple_functions import get_num_args
|
||||
from utils.space_ops import get_norm
|
||||
from functools import reduce
|
||||
from manimlib.constants import *
|
||||
from manimlib.container.container import Container
|
||||
from manimlib.utils.bezier import interpolate
|
||||
from manimlib.utils.color import color_gradient
|
||||
from manimlib.utils.color import color_to_rgb
|
||||
from manimlib.utils.color import interpolate_color
|
||||
from manimlib.utils.iterables import list_update
|
||||
from manimlib.utils.iterables import remove_list_redundancies
|
||||
from manimlib.utils.paths import straight_path
|
||||
from manimlib.utils.simple_functions import get_num_args
|
||||
from manimlib.utils.space_ops import angle_of_vector
|
||||
from manimlib.utils.space_ops import complex_to_R3
|
||||
from manimlib.utils.space_ops import get_norm
|
||||
from manimlib.utils.space_ops import rotation_matrix
|
||||
|
||||
|
||||
# TODO: Explain array_attrs
|
|
@ -1,17 +1,14 @@
|
|||
|
||||
|
||||
from constants import *
|
||||
|
||||
from mobject.numbers import DecimalNumber
|
||||
from mobject.types.vectorized_mobject import VGroup
|
||||
from mobject.types.vectorized_mobject import VMobject
|
||||
from mobject.geometry import Arrow
|
||||
from mobject.geometry import Line
|
||||
from utils.bezier import interpolate
|
||||
from utils.config_ops import digest_config
|
||||
from utils.space_ops import get_norm
|
||||
from utils.space_ops import normalize
|
||||
from utils.simple_functions import fdiv
|
||||
from manimlib.constants import *
|
||||
from manimlib.mobject.geometry import Arrow
|
||||
from manimlib.mobject.geometry import Line
|
||||
from manimlib.mobject.numbers import DecimalNumber
|
||||
from manimlib.mobject.types.vectorized_mobject import VGroup
|
||||
from manimlib.mobject.types.vectorized_mobject import VMobject
|
||||
from manimlib.utils.bezier import interpolate
|
||||
from manimlib.utils.config_ops import digest_config
|
||||
from manimlib.utils.simple_functions import fdiv
|
||||
from manimlib.utils.space_ops import get_norm
|
||||
from manimlib.utils.space_ops import normalize
|
||||
|
||||
|
||||
class NumberLine(VMobject):
|
|
@ -1,7 +1,6 @@
|
|||
from constants import *
|
||||
|
||||
from mobject.svg.tex_mobject import SingleStringTexMobject
|
||||
from mobject.types.vectorized_mobject import VMobject
|
||||
from manimlib.constants import *
|
||||
from manimlib.mobject.svg.tex_mobject import SingleStringTexMobject
|
||||
from manimlib.mobject.types.vectorized_mobject import VMobject
|
||||
|
||||
|
||||
class DecimalNumber(VMobject):
|
|
@ -1,17 +1,13 @@
|
|||
|
||||
|
||||
from constants import *
|
||||
|
||||
from mobject.mobject import Mobject
|
||||
from mobject.svg.brace import Brace
|
||||
from mobject.svg.tex_mobject import TexMobject
|
||||
from mobject.svg.tex_mobject import TextMobject
|
||||
from mobject.types.vectorized_mobject import VGroup
|
||||
from mobject.geometry import Line
|
||||
from mobject.geometry import Rectangle
|
||||
|
||||
from utils.color import color_gradient
|
||||
from utils.iterables import tuplify
|
||||
from manimlib.constants import *
|
||||
from manimlib.mobject.geometry import Line
|
||||
from manimlib.mobject.geometry import Rectangle
|
||||
from manimlib.mobject.mobject import Mobject
|
||||
from manimlib.mobject.svg.brace import Brace
|
||||
from manimlib.mobject.svg.tex_mobject import TexMobject
|
||||
from manimlib.mobject.svg.tex_mobject import TextMobject
|
||||
from manimlib.mobject.types.vectorized_mobject import VGroup
|
||||
from manimlib.utils.color import color_gradient
|
||||
from manimlib.utils.iterables import tuplify
|
||||
|
||||
EPSILON = 0.0001
|
||||
|
|
@ -1,13 +1,10 @@
|
|||
|
||||
|
||||
from constants import *
|
||||
|
||||
from mobject.types.vectorized_mobject import VMobject
|
||||
from mobject.geometry import Rectangle
|
||||
from mobject.geometry import Line
|
||||
from mobject.types.vectorized_mobject import VGroup
|
||||
from utils.config_ops import digest_config
|
||||
from utils.color import Color
|
||||
from manimlib.constants import *
|
||||
from manimlib.mobject.geometry import Line
|
||||
from manimlib.mobject.geometry import Rectangle
|
||||
from manimlib.mobject.types.vectorized_mobject import VGroup
|
||||
from manimlib.mobject.types.vectorized_mobject import VMobject
|
||||
from manimlib.utils.color import Color
|
||||
from manimlib.utils.config_ops import digest_config
|
||||
|
||||
|
||||
class SurroundingRectangle(Rectangle):
|
|
@ -1,17 +1,14 @@
|
|||
|
||||
|
||||
import numpy as np
|
||||
|
||||
from constants import *
|
||||
|
||||
from animation.composition import AnimationGroup
|
||||
from animation.creation import FadeIn
|
||||
from animation.creation import GrowFromCenter
|
||||
from mobject.svg.tex_mobject import TexMobject
|
||||
from mobject.svg.tex_mobject import TextMobject
|
||||
from mobject.types.vectorized_mobject import VMobject
|
||||
from utils.config_ops import digest_config
|
||||
from utils.space_ops import get_norm
|
||||
from manimlib.animation.composition import AnimationGroup
|
||||
from manimlib.animation.creation import FadeIn
|
||||
from manimlib.animation.creation import GrowFromCenter
|
||||
from manimlib.constants import *
|
||||
from manimlib.mobject.svg.tex_mobject import TexMobject
|
||||
from manimlib.mobject.svg.tex_mobject import TextMobject
|
||||
from manimlib.mobject.types.vectorized_mobject import VMobject
|
||||
from manimlib.utils.config_ops import digest_config
|
||||
from manimlib.utils.space_ops import get_norm
|
||||
|
||||
|
||||
class Brace(TexMobject):
|
|
@ -1,32 +1,28 @@
|
|||
|
||||
import itertools as it
|
||||
|
||||
from constants import *
|
||||
|
||||
from mobject.mobject import Mobject
|
||||
from mobject.svg.svg_mobject import SVGMobject
|
||||
from mobject.svg.tex_mobject import TexMobject
|
||||
from mobject.svg.tex_mobject import TextMobject
|
||||
from mobject.types.vectorized_mobject import VGroup
|
||||
from mobject.types.vectorized_mobject import VMobject
|
||||
from mobject.types.vectorized_mobject import VectorizedPoint
|
||||
|
||||
from animation.animation import Animation
|
||||
from animation.rotation import Rotating
|
||||
|
||||
from mobject.geometry import Arc
|
||||
from mobject.geometry import Circle
|
||||
from mobject.geometry import Line
|
||||
from mobject.geometry import Polygon
|
||||
from mobject.geometry import Rectangle
|
||||
from mobject.geometry import Square
|
||||
from mobject.geometry import AnnularSector
|
||||
from mobject.three_dimensions import Cube
|
||||
from utils.config_ops import digest_config
|
||||
from utils.space_ops import angle_of_vector
|
||||
from utils.space_ops import complex_to_R3
|
||||
from utils.space_ops import rotate_vector
|
||||
from utils.bezier import interpolate
|
||||
from manimlib.animation.animation import Animation
|
||||
from manimlib.animation.rotation import Rotating
|
||||
from manimlib.constants import *
|
||||
from manimlib.mobject.geometry import AnnularSector
|
||||
from manimlib.mobject.geometry import Arc
|
||||
from manimlib.mobject.geometry import Circle
|
||||
from manimlib.mobject.geometry import Line
|
||||
from manimlib.mobject.geometry import Polygon
|
||||
from manimlib.mobject.geometry import Rectangle
|
||||
from manimlib.mobject.geometry import Square
|
||||
from manimlib.mobject.mobject import Mobject
|
||||
from manimlib.mobject.svg.svg_mobject import SVGMobject
|
||||
from manimlib.mobject.svg.tex_mobject import TexMobject
|
||||
from manimlib.mobject.svg.tex_mobject import TextMobject
|
||||
from manimlib.mobject.three_dimensions import Cube
|
||||
from manimlib.mobject.types.vectorized_mobject import VGroup
|
||||
from manimlib.mobject.types.vectorized_mobject import VMobject
|
||||
from manimlib.mobject.types.vectorized_mobject import VectorizedPoint
|
||||
from manimlib.utils.bezier import interpolate
|
||||
from manimlib.utils.config_ops import digest_config
|
||||
from manimlib.utils.space_ops import angle_of_vector
|
||||
from manimlib.utils.space_ops import complex_to_R3
|
||||
from manimlib.utils.space_ops import rotate_vector
|
||||
|
||||
|
||||
class Lightbulb(SVGMobject):
|
|
@ -4,17 +4,17 @@ import string
|
|||
import warnings
|
||||
|
||||
from xml.dom import minidom
|
||||
from utils.color import *
|
||||
|
||||
from constants import *
|
||||
from mobject.geometry import Circle
|
||||
from mobject.geometry import Rectangle
|
||||
from mobject.geometry import RoundedRectangle
|
||||
from utils.bezier import is_closed
|
||||
from utils.config_ops import digest_config
|
||||
from utils.config_ops import digest_locals
|
||||
from mobject.types.vectorized_mobject import VGroup
|
||||
from mobject.types.vectorized_mobject import VMobject
|
||||
from manimlib.constants import *
|
||||
from manimlib.mobject.geometry import Circle
|
||||
from manimlib.mobject.geometry import Rectangle
|
||||
from manimlib.mobject.geometry import RoundedRectangle
|
||||
from manimlib.mobject.types.vectorized_mobject import VGroup
|
||||
from manimlib.mobject.types.vectorized_mobject import VMobject
|
||||
from manimlib.utils.bezier import is_closed
|
||||
from manimlib.utils.color import *
|
||||
from manimlib.utils.config_ops import digest_config
|
||||
from manimlib.utils.config_ops import digest_locals
|
||||
|
||||
|
||||
def string_to_numbers(num_string):
|
|
@ -1,17 +1,16 @@
|
|||
|
||||
from constants import *
|
||||
|
||||
from .svg_mobject import SVGMobject
|
||||
from .svg_mobject import VMobjectFromSVGPathstring
|
||||
from utils.config_ops import digest_config
|
||||
from utils.strings import split_string_list_to_isolate_substrings
|
||||
from utils.tex_file_writing import tex_to_svg_file
|
||||
from mobject.geometry import Line
|
||||
from mobject.types.vectorized_mobject import VGroup
|
||||
from mobject.types.vectorized_mobject import VectorizedPoint
|
||||
|
||||
import operator as op
|
||||
from functools import reduce
|
||||
import operator as op
|
||||
|
||||
from manimlib.constants import *
|
||||
from manimlib.mobject.geometry import Line
|
||||
from manimlib.mobject.svg.svg_mobject import SVGMobject
|
||||
from manimlib.mobject.svg.svg_mobject import VMobjectFromSVGPathstring
|
||||
from manimlib.mobject.types.vectorized_mobject import VGroup
|
||||
from manimlib.mobject.types.vectorized_mobject import VectorizedPoint
|
||||
from manimlib.utils.config_ops import digest_config
|
||||
from manimlib.utils.strings import split_string_list_to_isolate_substrings
|
||||
from manimlib.utils.tex_file_writing import tex_to_svg_file
|
||||
|
||||
|
||||
TEX_MOB_SCALE_FACTOR = 0.05
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
import numpy as np
|
||||
|
||||
from constants import ORIGIN
|
||||
from utils.space_ops import get_unit_normal
|
||||
from manimlib.constants import ORIGIN
|
||||
from manimlib.utils.space_ops import get_unit_normal
|
||||
|
||||
|
||||
def get_3d_vmob_gradient_start_and_end_points(vmob):
|
|
@ -1,9 +1,9 @@
|
|||
import numpy as np
|
||||
|
||||
from constants import ORIGIN
|
||||
from constants import UP
|
||||
from utils.space_ops import get_unit_normal
|
||||
from utils.space_ops import get_norm
|
||||
from manimlib.constants import ORIGIN
|
||||
from manimlib.constants import UP
|
||||
from manimlib.utils.space_ops import get_norm
|
||||
from manimlib.utils.space_ops import get_unit_normal
|
||||
|
||||
|
||||
def get_3d_vmob_gradient_start_and_end_points(vmob):
|
|
@ -1,13 +1,9 @@
|
|||
|
||||
|
||||
from constants import *
|
||||
|
||||
from mobject.types.vectorized_mobject import VMobject
|
||||
from mobject.types.vectorized_mobject import VGroup
|
||||
from mobject.geometry import Square
|
||||
|
||||
from utils.iterables import tuplify
|
||||
from utils.space_ops import z_to_vector
|
||||
from manimlib.constants import *
|
||||
from manimlib.mobject.geometry import Square
|
||||
from manimlib.mobject.types.vectorized_mobject import VGroup
|
||||
from manimlib.mobject.types.vectorized_mobject import VMobject
|
||||
from manimlib.utils.iterables import tuplify
|
||||
from manimlib.utils.space_ops import z_to_vector
|
||||
|
||||
##############
|
||||
|
|
@ -1,17 +1,14 @@
|
|||
|
||||
|
||||
import numpy as np
|
||||
|
||||
from PIL import Image
|
||||
|
||||
from constants import *
|
||||
|
||||
from mobject.mobject import Mobject
|
||||
from mobject.shape_matchers import SurroundingRectangle
|
||||
from utils.bezier import interpolate
|
||||
from utils.color import color_to_int_rgb
|
||||
from utils.config_ops import digest_config
|
||||
from utils.images import get_full_raster_image_path
|
||||
from manimlib.constants import *
|
||||
from manimlib.mobject.mobject import Mobject
|
||||
from manimlib.mobject.shape_matchers import SurroundingRectangle
|
||||
from manimlib.utils.bezier import interpolate
|
||||
from manimlib.utils.color import color_to_int_rgb
|
||||
from manimlib.utils.config_ops import digest_config
|
||||
from manimlib.utils.images import get_full_raster_image_path
|
||||
|
||||
|
||||
class AbstractImageMobject(Mobject):
|
|
@ -1,15 +1,12 @@
|
|||
|
||||
|
||||
from constants import *
|
||||
|
||||
from mobject.mobject import Mobject
|
||||
from utils.bezier import interpolate
|
||||
from utils.color import color_gradient
|
||||
from utils.color import color_to_rgba
|
||||
from utils.color import rgba_to_color
|
||||
from utils.config_ops import digest_config
|
||||
from utils.iterables import stretch_array_to_length
|
||||
from utils.space_ops import get_norm
|
||||
from manimlib.constants import *
|
||||
from manimlib.mobject.mobject import Mobject
|
||||
from manimlib.utils.bezier import interpolate
|
||||
from manimlib.utils.color import color_gradient
|
||||
from manimlib.utils.color import color_to_rgba
|
||||
from manimlib.utils.color import rgba_to_color
|
||||
from manimlib.utils.config_ops import digest_config
|
||||
from manimlib.utils.iterables import stretch_array_to_length
|
||||
from manimlib.utils.space_ops import get_norm
|
||||
|
||||
|
||||
class PMobject(Mobject):
|
|
@ -1,20 +1,20 @@
|
|||
|
||||
import itertools as it
|
||||
|
||||
from colour import Color
|
||||
|
||||
from mobject.mobject import Mobject
|
||||
from mobject.three_d_utils import get_3d_vmob_gradient_start_and_end_points
|
||||
from constants import *
|
||||
from utils.bezier import bezier
|
||||
from utils.bezier import get_smooth_handle_points
|
||||
from utils.bezier import interpolate
|
||||
from utils.bezier import is_closed
|
||||
from utils.bezier import partial_bezier_points
|
||||
from utils.color import color_to_rgba
|
||||
from utils.iterables import make_even
|
||||
from utils.iterables import tuplify
|
||||
from utils.iterables import stretch_array_to_length
|
||||
from utils.simple_functions import clip_in_place
|
||||
from manimlib.constants import *
|
||||
from manimlib.mobject.mobject import Mobject
|
||||
from manimlib.mobject.three_d_utils import get_3d_vmob_gradient_start_and_end_points
|
||||
from manimlib.utils.bezier import bezier
|
||||
from manimlib.utils.bezier import get_smooth_handle_points
|
||||
from manimlib.utils.bezier import interpolate
|
||||
from manimlib.utils.bezier import is_closed
|
||||
from manimlib.utils.bezier import partial_bezier_points
|
||||
from manimlib.utils.color import color_to_rgba
|
||||
from manimlib.utils.iterables import make_even
|
||||
from manimlib.utils.iterables import stretch_array_to_length
|
||||
from manimlib.utils.iterables import tuplify
|
||||
from manimlib.utils.simple_functions import clip_in_place
|
||||
|
||||
|
||||
class VMobject(Mobject):
|
|
@ -1,8 +1,7 @@
|
|||
|
||||
import numpy as np
|
||||
|
||||
from mobject.mobject import Mobject
|
||||
from utils.bezier import interpolate
|
||||
from manimlib.mobject.mobject import Mobject
|
||||
from manimlib.utils.bezier import interpolate
|
||||
|
||||
|
||||
class ValueTracker(Mobject):
|
|
@ -1,9 +1,9 @@
|
|||
import numpy as np
|
||||
|
||||
from animation.animation import Animation
|
||||
from constants import *
|
||||
from mobject.svg.tex_mobject import TexMobject
|
||||
from scene.scene import Scene
|
||||
from manimlib.animation.animation import Animation
|
||||
from manimlib.constants import *
|
||||
from manimlib.mobject.svg.tex_mobject import TexMobject
|
||||
from manimlib.scene.scene import Scene
|
||||
|
||||
|
||||
class RearrangeEquation(Scene):
|
|
@ -1,11 +1,9 @@
|
|||
from constants import *
|
||||
|
||||
from mobject.svg.tex_mobject import TexMobject
|
||||
from mobject.types.vectorized_mobject import VMobject, VGroup
|
||||
from mobject.numbers import Integer
|
||||
|
||||
from scene.scene import Scene
|
||||
from utils.simple_functions import choose
|
||||
from manimlib.constants import *
|
||||
from manimlib.mobject.numbers import Integer
|
||||
from manimlib.mobject.svg.tex_mobject import TexMobject
|
||||
from manimlib.mobject.types.vectorized_mobject import VMobject, VGroup
|
||||
from manimlib.scene.scene import Scene
|
||||
from manimlib.utils.simple_functions import choose
|
||||
|
||||
|
||||
DEFAULT_COUNT_NUM_OFFSET = (FRAME_X_RADIUS - 1, FRAME_Y_RADIUS - 1, 0)
|
|
@ -1,12 +1,10 @@
|
|||
from constants import *
|
||||
|
||||
from animation.animation import Animation
|
||||
# from animation.movement import SmoothedVectorizedHomotopy
|
||||
from animation.movement import ComplexHomotopy
|
||||
from animation.transform import MoveToTarget
|
||||
from mobject.coordinate_systems import ComplexPlane
|
||||
from mobject.types.vectorized_mobject import VGroup
|
||||
from scene.scene import Scene
|
||||
from manimlib.animation.animation import Animation
|
||||
from manimlib.animation.movement import ComplexHomotopy
|
||||
from manimlib.animation.transform import MoveToTarget
|
||||
from manimlib.constants import *
|
||||
from manimlib.mobject.coordinate_systems import ComplexPlane
|
||||
from manimlib.mobject.types.vectorized_mobject import VGroup
|
||||
from manimlib.scene.scene import Scene
|
||||
|
||||
|
||||
# TODO, refactor this full scene
|
|
@ -1,16 +1,14 @@
|
|||
from constants import *
|
||||
|
||||
from mobject.svg.tex_mobject import TexMobject
|
||||
from mobject.types.vectorized_mobject import VGroup
|
||||
|
||||
from animation.creation import ShowCreation
|
||||
from animation.creation import FadeIn
|
||||
from animation.transform import MoveToTarget
|
||||
from animation.transform import Transform
|
||||
from mobject.geometry import Arrow
|
||||
from mobject.geometry import Circle
|
||||
from mobject.geometry import Dot
|
||||
from scene.scene import Scene
|
||||
from manimlib.animation.creation import FadeIn
|
||||
from manimlib.animation.creation import ShowCreation
|
||||
from manimlib.animation.transform import MoveToTarget
|
||||
from manimlib.animation.transform import Transform
|
||||
from manimlib.constants import *
|
||||
from manimlib.mobject.geometry import Arrow
|
||||
from manimlib.mobject.geometry import Circle
|
||||
from manimlib.mobject.geometry import Dot
|
||||
from manimlib.mobject.svg.tex_mobject import TexMobject
|
||||
from manimlib.mobject.types.vectorized_mobject import VGroup
|
||||
from manimlib.scene.scene import Scene
|
||||
|
||||
|
||||
class CountingScene(Scene):
|
|
@ -1,22 +1,22 @@
|
|||
from for_3b1b_videos.pi_creature import PiCreature
|
||||
from for_3b1b_videos.pi_creature import Randolph
|
||||
from for_3b1b_videos.pi_creature import get_all_pi_creature_modes
|
||||
from mobject.types.vectorized_mobject import VGroup
|
||||
from mobject.types.vectorized_mobject import VMobject
|
||||
from mobject.geometry import Circle
|
||||
from mobject.geometry import Polygon
|
||||
from mobject.geometry import RegularPolygon
|
||||
from utils.bezier import interpolate
|
||||
from utils.color import color_gradient
|
||||
from utils.config_ops import digest_config
|
||||
from utils.space_ops import center_of_mass
|
||||
from utils.space_ops import compass_directions
|
||||
from utils.space_ops import rotate_vector
|
||||
from utils.space_ops import rotation_matrix
|
||||
|
||||
from constants import *
|
||||
from functools import reduce
|
||||
|
||||
from manimlib.constants import *
|
||||
from manimlib.for_3b1b_videos.pi_creature import PiCreature
|
||||
from manimlib.for_3b1b_videos.pi_creature import Randolph
|
||||
from manimlib.for_3b1b_videos.pi_creature import get_all_pi_creature_modes
|
||||
from manimlib.mobject.geometry import Circle
|
||||
from manimlib.mobject.geometry import Polygon
|
||||
from manimlib.mobject.geometry import RegularPolygon
|
||||
from manimlib.mobject.types.vectorized_mobject import VGroup
|
||||
from manimlib.mobject.types.vectorized_mobject import VMobject
|
||||
from manimlib.utils.bezier import interpolate
|
||||
from manimlib.utils.color import color_gradient
|
||||
from manimlib.utils.config_ops import digest_config
|
||||
from manimlib.utils.space_ops import center_of_mass
|
||||
from manimlib.utils.space_ops import compass_directions
|
||||
from manimlib.utils.space_ops import rotate_vector
|
||||
from manimlib.utils.space_ops import rotation_matrix
|
||||
|
||||
|
||||
def rotate(points, angle=np.pi, axis=OUT):
|
||||
if axis is None:
|
|
@ -1,13 +1,13 @@
|
|||
from functools import reduce
|
||||
import itertools as it
|
||||
import numpy as np
|
||||
import operator as op
|
||||
|
||||
from constants import *
|
||||
import numpy as np
|
||||
|
||||
from scene.scene import Scene
|
||||
from utils.rate_functions import there_and_back
|
||||
from utils.space_ops import center_of_mass
|
||||
from functools import reduce
|
||||
from manimlib.constants import *
|
||||
from manimlib.scene.scene import Scene
|
||||
from manimlib.utils.rate_functions import there_and_back
|
||||
from manimlib.utils.space_ops import center_of_mass
|
||||
|
||||
|
||||
class Graph():
|
|
@ -1,26 +1,23 @@
|
|||
from constants import *
|
||||
|
||||
from mobject.geometry import AnnularSector
|
||||
from mobject.geometry import Annulus
|
||||
from mobject.mobject import Mobject
|
||||
from mobject.svg.svg_mobject import SVGMobject
|
||||
from mobject.types.vectorized_mobject import VMobject
|
||||
from mobject.types.vectorized_mobject import VectorizedPoint
|
||||
|
||||
from continual_animation.continual_animation import ContinualAnimation
|
||||
|
||||
from animation.composition import LaggedStart
|
||||
from animation.transform import Transform
|
||||
from animation.creation import FadeIn
|
||||
from animation.creation import FadeOut
|
||||
|
||||
from utils.space_ops import angle_between_vectors
|
||||
from utils.space_ops import project_along_vector
|
||||
from utils.space_ops import rotate_vector
|
||||
from utils.space_ops import z_to_vector
|
||||
from traceback import *
|
||||
|
||||
from scipy.spatial import ConvexHull
|
||||
from traceback import *
|
||||
|
||||
from manimlib.animation.composition import LaggedStart
|
||||
from manimlib.animation.creation import FadeIn
|
||||
from manimlib.animation.creation import FadeOut
|
||||
from manimlib.animation.transform import Transform
|
||||
from manimlib.constants import *
|
||||
from manimlib.continual_animation.continual_animation import ContinualAnimation
|
||||
from manimlib.mobject.geometry import AnnularSector
|
||||
from manimlib.mobject.geometry import Annulus
|
||||
from manimlib.mobject.mobject import Mobject
|
||||
from manimlib.mobject.svg.svg_mobject import SVGMobject
|
||||
from manimlib.mobject.types.vectorized_mobject import VMobject
|
||||
from manimlib.mobject.types.vectorized_mobject import VectorizedPoint
|
||||
from manimlib.utils.space_ops import angle_between_vectors
|
||||
from manimlib.utils.space_ops import project_along_vector
|
||||
from manimlib.utils.space_ops import rotate_vector
|
||||
from manimlib.utils.space_ops import z_to_vector
|
||||
|
||||
LIGHT_COLOR = YELLOW
|
||||
SHADOW_COLOR = BLACK
|
|
@ -1,17 +1,16 @@
|
|||
import numpy as np
|
||||
|
||||
from constants import *
|
||||
|
||||
from animation.creation import ShowCreation
|
||||
from animation.transform import ApplyMethod
|
||||
from animation.creation import FadeOut
|
||||
from animation.transform import Transform
|
||||
from mobject.matrix import Matrix
|
||||
from mobject.svg.tex_mobject import TexMobject
|
||||
from mobject.types.vectorized_mobject import VGroup
|
||||
from scene.scene import Scene
|
||||
from mobject.geometry import Circle
|
||||
from mobject.geometry import Line
|
||||
from manimlib.animation.creation import FadeOut
|
||||
from manimlib.animation.creation import ShowCreation
|
||||
from manimlib.animation.transform import ApplyMethod
|
||||
from manimlib.animation.transform import Transform
|
||||
from manimlib.constants import *
|
||||
from manimlib.mobject.geometry import Circle
|
||||
from manimlib.mobject.geometry import Line
|
||||
from manimlib.mobject.matrix import Matrix
|
||||
from manimlib.mobject.svg.tex_mobject import TexMobject
|
||||
from manimlib.mobject.types.vectorized_mobject import VGroup
|
||||
from manimlib.scene.scene import Scene
|
||||
|
||||
|
||||
class NumericalMatrixMultiplication(Scene):
|
|
@ -1,10 +1,9 @@
|
|||
import itertools as it
|
||||
from copy import deepcopy
|
||||
import itertools as it
|
||||
|
||||
from mobject.mobject import Mobject
|
||||
from utils.iterables import adjacent_pairs
|
||||
|
||||
from constants import *
|
||||
from manimlib.constants import *
|
||||
from manimlib.mobject.mobject import Mobject
|
||||
from manimlib.utils.iterables import adjacent_pairs
|
||||
|
||||
# Warning: This is all now pretty depricated, and should not be expected to work
|
||||
|
|
@ -1,25 +1,23 @@
|
|||
|
||||
|
||||
from constants import *
|
||||
import itertools as it
|
||||
|
||||
from scene.scene import Scene
|
||||
from animation.creation import Write, DrawBorderThenFill, ShowCreation
|
||||
from animation.transform import Transform
|
||||
from animation.update import UpdateFromAlphaFunc
|
||||
from mobject.functions import ParametricFunction
|
||||
from mobject.geometry import Line
|
||||
from mobject.geometry import Rectangle
|
||||
from mobject.geometry import RegularPolygon
|
||||
from mobject.number_line import NumberLine
|
||||
from mobject.svg.tex_mobject import TexMobject
|
||||
from mobject.svg.tex_mobject import TextMobject
|
||||
from mobject.types.vectorized_mobject import VGroup
|
||||
from mobject.types.vectorized_mobject import VectorizedPoint
|
||||
from utils.bezier import interpolate
|
||||
from utils.color import color_gradient
|
||||
from utils.color import invert_color
|
||||
from utils.space_ops import angle_of_vector
|
||||
from manimlib.animation.creation import Write, DrawBorderThenFill, ShowCreation
|
||||
from manimlib.animation.transform import Transform
|
||||
from manimlib.animation.update import UpdateFromAlphaFunc
|
||||
from manimlib.constants import *
|
||||
from manimlib.mobject.functions import ParametricFunction
|
||||
from manimlib.mobject.geometry import Line
|
||||
from manimlib.mobject.geometry import Rectangle
|
||||
from manimlib.mobject.geometry import RegularPolygon
|
||||
from manimlib.mobject.number_line import NumberLine
|
||||
from manimlib.mobject.svg.tex_mobject import TexMobject
|
||||
from manimlib.mobject.svg.tex_mobject import TextMobject
|
||||
from manimlib.mobject.types.vectorized_mobject import VGroup
|
||||
from manimlib.mobject.types.vectorized_mobject import VectorizedPoint
|
||||
from manimlib.scene.scene import Scene
|
||||
from manimlib.utils.bezier import interpolate
|
||||
from manimlib.utils.color import color_gradient
|
||||
from manimlib.utils.color import invert_color
|
||||
from manimlib.utils.space_ops import angle_of_vector
|
||||
|
||||
# TODO, this should probably reimplemented entirely, especially so as to
|
||||
# better reuse code from mobject/coordinate_systems
|
1
manimlib/scene/media_dir.txt
Normal file
|
@ -0,0 +1 @@
|
|||
media
|
|
@ -1,8 +1,6 @@
|
|||
|
||||
|
||||
from scene.scene import Scene
|
||||
from camera.moving_camera import MovingCamera
|
||||
from utils.iterables import list_update
|
||||
from manimlib.camera.moving_camera import MovingCamera
|
||||
from manimlib.scene.scene import Scene
|
||||
from manimlib.utils.iterables import list_update
|
||||
|
||||
|
||||
class MovingCameraScene(Scene):
|
|
@ -1,10 +1,7 @@
|
|||
|
||||
|
||||
from scene.scene import Scene
|
||||
from animation.transform import Transform
|
||||
from mobject.mobject import Mobject
|
||||
|
||||
from constants import *
|
||||
from manimlib.animation.transform import Transform
|
||||
from manimlib.constants import *
|
||||
from manimlib.mobject.mobject import Mobject
|
||||
from manimlib.scene.scene import Scene
|
||||
|
||||
|
||||
class ReconfigurableScene(Scene):
|
|
@ -1,15 +1,11 @@
|
|||
|
||||
from constants import *
|
||||
|
||||
from .scene import Scene
|
||||
|
||||
from animation.animation import Animation
|
||||
from animation.transform import MoveToTarget
|
||||
from animation.transform import Transform
|
||||
from animation.update import UpdateFromFunc
|
||||
|
||||
from mobject.types.vectorized_mobject import VGroup
|
||||
from mobject.probability import SampleSpace
|
||||
from manimlib.animation.animation import Animation
|
||||
from manimlib.animation.transform import MoveToTarget
|
||||
from manimlib.animation.transform import Transform
|
||||
from manimlib.animation.update import UpdateFromFunc
|
||||
from manimlib.constants import *
|
||||
from manimlib.scene.scene import Scene
|
||||
from manimlib.mobject.probability import SampleSpace
|
||||
from manimlib.mobject.types.vectorized_mobject import VGroup
|
||||
|
||||
|
||||
class SampleSpaceScene(Scene):
|
|
@ -1,37 +1,30 @@
|
|||
|
||||
from time import sleep
|
||||
import _thread as thread
|
||||
import datetime
|
||||
import inspect
|
||||
import itertools as it
|
||||
import numpy as np
|
||||
import os
|
||||
import random
|
||||
import shutil
|
||||
import subprocess as sp
|
||||
import warnings
|
||||
from time import sleep
|
||||
try:
|
||||
import thread # Low-level threading API (Python 2.7)
|
||||
except ImportError:
|
||||
import _thread as thread # Low-level threading API (Python 3.x)
|
||||
|
||||
from tqdm import tqdm as ProgressDisplay
|
||||
import numpy as np
|
||||
|
||||
from constants import *
|
||||
|
||||
from animation.animation import Animation
|
||||
from animation.transform import MoveToTarget, ApplyMethod
|
||||
from camera.camera import Camera
|
||||
from continual_animation.continual_animation import ContinualAnimation
|
||||
from mobject.mobject import Mobject
|
||||
from utils.iterables import list_update
|
||||
from utils.output_directory_getters import add_extension_if_not_present
|
||||
from utils.output_directory_getters import get_movie_output_directory
|
||||
from utils.output_directory_getters import get_image_output_directory
|
||||
|
||||
from container.container import Container
|
||||
|
||||
from mobject.svg.tex_mobject import TextMobject
|
||||
from animation.creation import Write
|
||||
import datetime
|
||||
from manimlib.animation.animation import Animation
|
||||
from manimlib.animation.creation import Write
|
||||
from manimlib.animation.transform import MoveToTarget, ApplyMethod
|
||||
from manimlib.camera.camera import Camera
|
||||
from manimlib.constants import *
|
||||
from manimlib.container.container import Container
|
||||
from manimlib.continual_animation.continual_animation import ContinualAnimation
|
||||
from manimlib.mobject.mobject import Mobject
|
||||
from manimlib.mobject.svg.tex_mobject import TextMobject
|
||||
from manimlib.utils.iterables import list_update
|
||||
from manimlib.utils.output_directory_getters import add_extension_if_not_present
|
||||
from manimlib.utils.output_directory_getters import get_image_output_directory
|
||||
from manimlib.utils.output_directory_getters import get_movie_output_directory
|
||||
|
||||
class Scene(Container):
|
||||
CONFIG = {
|
|
@ -1,11 +1,7 @@
|
|||
|
||||
|
||||
|
||||
from tqdm import tqdm as show_progress
|
||||
import cv2
|
||||
|
||||
from tqdm import tqdm as show_progress
|
||||
|
||||
from scene.scene import Scene
|
||||
from manimlib.scene.scene import Scene
|
||||
|
||||
|
||||
class SceneFromVideo(Scene):
|
|
@ -1,16 +1,16 @@
|
|||
from constants import DEGREES
|
||||
from constants import PRODUCTION_QUALITY_FRAME_DURATION
|
||||
from continual_animation.update import ContinualGrowValue
|
||||
from animation.transform import ApplyMethod
|
||||
from camera.three_d_camera import ThreeDCamera
|
||||
from mobject.coordinate_systems import ThreeDAxes
|
||||
from mobject.geometry import Line
|
||||
from mobject.three_dimensions import Sphere
|
||||
from mobject.types.vectorized_mobject import VGroup
|
||||
from mobject.types.vectorized_mobject import VectorizedPoint
|
||||
from scene.scene import Scene
|
||||
from utils.config_ops import digest_config
|
||||
from utils.config_ops import merge_config
|
||||
from manimlib.animation.transform import ApplyMethod
|
||||
from manimlib.camera.three_d_camera import ThreeDCamera
|
||||
from manimlib.constants import DEGREES
|
||||
from manimlib.constants import PRODUCTION_QUALITY_FRAME_DURATION
|
||||
from manimlib.continual_animation.update import ContinualGrowValue
|
||||
from manimlib.mobject.coordinate_systems import ThreeDAxes
|
||||
from manimlib.mobject.geometry import Line
|
||||
from manimlib.mobject.three_dimensions import Sphere
|
||||
from manimlib.mobject.types.vectorized_mobject import VGroup
|
||||
from manimlib.mobject.types.vectorized_mobject import VectorizedPoint
|
||||
from manimlib.scene.scene import Scene
|
||||
from manimlib.utils.config_ops import digest_config
|
||||
from manimlib.utils.config_ops import merge_config
|
||||
|
||||
|
||||
class ThreeDScene(Scene):
|
|
@ -1,38 +1,34 @@
|
|||
|
||||
|
||||
import numpy as np
|
||||
|
||||
from constants import *
|
||||
|
||||
from animation.animation import Animation
|
||||
from animation.creation import ShowCreation
|
||||
from animation.creation import Write
|
||||
from animation.transform import ApplyFunction
|
||||
from animation.transform import ApplyPointwiseFunction
|
||||
from animation.creation import FadeOut
|
||||
from animation.creation import GrowArrow
|
||||
from animation.transform import Transform
|
||||
from mobject.mobject import Mobject
|
||||
from mobject.svg.tex_mobject import TexMobject
|
||||
from mobject.svg.tex_mobject import TextMobject
|
||||
from mobject.types.vectorized_mobject import VGroup
|
||||
from mobject.types.vectorized_mobject import VMobject
|
||||
from scene.scene import Scene
|
||||
from mobject.geometry import Arrow
|
||||
from mobject.geometry import Dot
|
||||
from mobject.geometry import Line
|
||||
from mobject.geometry import Rectangle
|
||||
from mobject.geometry import Vector
|
||||
from mobject.coordinate_systems import Axes
|
||||
from mobject.coordinate_systems import NumberPlane
|
||||
|
||||
from mobject.matrix import Matrix
|
||||
from mobject.matrix import VECTOR_LABEL_SCALE_FACTOR
|
||||
from mobject.matrix import vector_coordinate_label
|
||||
from utils.rate_functions import rush_from
|
||||
from utils.rate_functions import rush_into
|
||||
from utils.space_ops import angle_of_vector
|
||||
from utils.space_ops import get_norm
|
||||
from manimlib.animation.animation import Animation
|
||||
from manimlib.animation.creation import FadeOut
|
||||
from manimlib.animation.creation import GrowArrow
|
||||
from manimlib.animation.creation import ShowCreation
|
||||
from manimlib.animation.creation import Write
|
||||
from manimlib.animation.transform import ApplyFunction
|
||||
from manimlib.animation.transform import ApplyPointwiseFunction
|
||||
from manimlib.animation.transform import Transform
|
||||
from manimlib.constants import *
|
||||
from manimlib.mobject.coordinate_systems import Axes
|
||||
from manimlib.mobject.coordinate_systems import NumberPlane
|
||||
from manimlib.mobject.geometry import Arrow
|
||||
from manimlib.mobject.geometry import Dot
|
||||
from manimlib.mobject.geometry import Line
|
||||
from manimlib.mobject.geometry import Rectangle
|
||||
from manimlib.mobject.geometry import Vector
|
||||
from manimlib.mobject.matrix import Matrix
|
||||
from manimlib.mobject.matrix import VECTOR_LABEL_SCALE_FACTOR
|
||||
from manimlib.mobject.matrix import vector_coordinate_label
|
||||
from manimlib.mobject.mobject import Mobject
|
||||
from manimlib.mobject.svg.tex_mobject import TexMobject
|
||||
from manimlib.mobject.svg.tex_mobject import TextMobject
|
||||
from manimlib.mobject.types.vectorized_mobject import VGroup
|
||||
from manimlib.mobject.types.vectorized_mobject import VMobject
|
||||
from manimlib.scene.scene import Scene
|
||||
from manimlib.utils.rate_functions import rush_from
|
||||
from manimlib.utils.rate_functions import rush_into
|
||||
from manimlib.utils.space_ops import angle_of_vector
|
||||
from manimlib.utils.space_ops import get_norm
|
||||
|
||||
X_COLOR = GREEN_C
|
||||
Y_COLOR = RED_C
|
|
@ -1,13 +1,10 @@
|
|||
|
||||
|
||||
from scene.moving_camera_scene import MovingCameraScene
|
||||
from camera.moving_camera import MovingCamera
|
||||
from camera.multi_camera import MultiCamera
|
||||
from mobject.types.image_mobject import ImageMobjectFromCamera
|
||||
from utils.simple_functions import fdiv
|
||||
|
||||
from constants import *
|
||||
from animation.transform import ApplyMethod
|
||||
from manimlib.animation.transform import ApplyMethod
|
||||
from manimlib.camera.moving_camera import MovingCamera
|
||||
from manimlib.camera.multi_camera import MultiCamera
|
||||
from manimlib.constants import *
|
||||
from manimlib.mobject.types.image_mobject import ImageMobjectFromCamera
|
||||
from manimlib.scene.moving_camera_scene import MovingCameraScene
|
||||
from manimlib.utils.simple_functions import fdiv
|
||||
|
||||
# Note, any scenes from old videos using ZoomedScene will almost certainly
|
||||
# break, as it was restructured.
|
|
@ -1,14 +1,12 @@
|
|||
|
||||
|
||||
import inspect
|
||||
import os
|
||||
import sys
|
||||
|
||||
from constants import PRODUCTION_QUALITY_CAMERA_CONFIG
|
||||
from constants import PRODUCTION_QUALITY_FRAME_DURATION
|
||||
from extract_scene import get_module
|
||||
from extract_scene import is_scene
|
||||
from utils.output_directory_getters import get_movie_output_directory
|
||||
from manimlib.constants import PRODUCTION_QUALITY_CAMERA_CONFIG
|
||||
from manimlib.constants import PRODUCTION_QUALITY_FRAME_DURATION
|
||||
from manimlib.extract_scene import get_module
|
||||
from manimlib.extract_scene import is_scene
|
||||
from manimlib.utils.output_directory_getters import get_movie_output_directory
|
||||
|
||||
|
||||
def get_sorted_scene_classes(module_name):
|
|
@ -1,18 +1,19 @@
|
|||
from scene.scene import Scene
|
||||
from time import sleep
|
||||
import code
|
||||
import constants
|
||||
import os
|
||||
import readline
|
||||
import subprocess
|
||||
|
||||
from manimlib.scene.scene import Scene
|
||||
import manimlib.constants
|
||||
|
||||
|
||||
def start_livestream(to_twitch=False, twitch_key=None):
|
||||
class Manim():
|
||||
|
||||
def __new__(cls):
|
||||
kwargs = {
|
||||
"scene_name": constants.LIVE_STREAM_NAME,
|
||||
"scene_name": manimlib.constants.LIVE_STREAM_NAME,
|
||||
"open_video_upon_completion": False,
|
||||
"show_file_in_finder": False,
|
||||
# By default, write to file
|
||||
|
@ -25,12 +26,12 @@ def start_livestream(to_twitch=False, twitch_key=None):
|
|||
"quiet": True,
|
||||
"ignore_waits": False,
|
||||
"write_all": False,
|
||||
"name": constants.LIVE_STREAM_NAME,
|
||||
"name": manimlib.constants.LIVE_STREAM_NAME,
|
||||
"start_at_animation_number": 0,
|
||||
"end_at_animation_number": None,
|
||||
"skip_animations": False,
|
||||
"camera_config": constants.HIGH_QUALITY_CAMERA_CONFIG,
|
||||
"frame_duration": constants.MEDIUM_QUALITY_FRAME_DURATION,
|
||||
"camera_config": manimlib.constants.HIGH_QUALITY_CAMERA_CONFIG,
|
||||
"frame_duration": manimlib.constants.MEDIUM_QUALITY_FRAME_DURATION,
|
||||
"livestreaming": True,
|
||||
"to_twitch": to_twitch,
|
||||
"twitch_key": twitch_key,
|
||||
|
@ -40,7 +41,7 @@ def start_livestream(to_twitch=False, twitch_key=None):
|
|||
if not to_twitch:
|
||||
FNULL = open(os.devnull, 'w')
|
||||
subprocess.Popen(
|
||||
[constants.STREAMING_CLIENT, constants.STREAMING_URL],
|
||||
[manimlib.constants.STREAMING_CLIENT, manimlib.constants.STREAMING_URL],
|
||||
stdout=FNULL,
|
||||
stderr=FNULL)
|
||||
sleep(3)
|
||||
|
@ -50,4 +51,4 @@ def start_livestream(to_twitch=False, twitch_key=None):
|
|||
shell = code.InteractiveConsole(variables)
|
||||
shell.push("manim = Manim()")
|
||||
shell.push("from big_ol_pile_of_manim_imports import *")
|
||||
shell.interact(banner=constants.STREAMING_CONSOLE_BANNER)
|
||||
shell.interact(banner=manimlib.constants.STREAMING_CONSOLE_BANNER)
|
|
@ -1,8 +1,8 @@
|
|||
from scipy import linalg
|
||||
import numpy as np
|
||||
|
||||
from scipy import linalg
|
||||
from utils.simple_functions import choose_using_cache
|
||||
from utils.space_ops import get_norm
|
||||
from manimlib.utils.simple_functions import choose_using_cache
|
||||
from manimlib.utils.space_ops import get_norm
|
||||
|
||||
CLOSED_THRESHOLD = 0.001
|
||||
|
|
@ -1,13 +1,13 @@
|
|||
import numpy as np
|
||||
import random
|
||||
|
||||
from colour import Color
|
||||
from constants import WHITE
|
||||
from constants import PALETTE
|
||||
import numpy as np
|
||||
|
||||
from utils.bezier import interpolate
|
||||
from utils.space_ops import normalize
|
||||
from utils.simple_functions import clip_in_place
|
||||
from manimlib.constants import PALETTE
|
||||
from manimlib.constants import WHITE
|
||||
from manimlib.utils.bezier import interpolate
|
||||
from manimlib.utils.simple_functions import clip_in_place
|
||||
from manimlib.utils.space_ops import normalize
|
||||
|
||||
|
||||
def color_to_rgb(color):
|
|
@ -1,6 +1,6 @@
|
|||
from functools import reduce
|
||||
import inspect
|
||||
import operator as op
|
||||
from functools import reduce
|
||||
|
||||
|
||||
def instantiate(obj):
|
|
@ -2,7 +2,8 @@ import numpy as np
|
|||
import os
|
||||
|
||||
from PIL import Image
|
||||
from constants import RASTER_IMAGE_DIR
|
||||
|
||||
from manimlib.constants import RASTER_IMAGE_DIR
|
||||
|
||||
|
||||
def get_full_raster_image_path(image_file_name):
|
|
@ -1,8 +1,8 @@
|
|||
import inspect
|
||||
import os
|
||||
|
||||
from constants import THIS_DIR
|
||||
from constants import VIDEO_DIR
|
||||
from manimlib.constants import THIS_DIR
|
||||
from manimlib.constants import VIDEO_DIR
|
||||
|
||||
|
||||
def add_extension_if_not_present(file_name, extension):
|
||||
|
@ -20,12 +20,14 @@ def guarantee_existance(path):
|
|||
|
||||
|
||||
def get_scene_output_directory(scene_class):
|
||||
file_path = os.path.abspath(inspect.getfile(scene_class))
|
||||
|
||||
file_path = os.path.relpath(file_path, THIS_DIR)
|
||||
file_path = file_path.replace(".pyc", "")
|
||||
file_path = file_path.replace(".py", "")
|
||||
return guarantee_existance(os.path.join(VIDEO_DIR, file_path))
|
||||
try:
|
||||
file_path = os.path.abspath(inspect.getfile(scene_class))
|
||||
file_path = os.path.relpath(file_path, THIS_DIR)
|
||||
file_path = file_path.replace(".pyc", "")
|
||||
file_path = file_path.replace(".py", "")
|
||||
return guarantee_existance(os.path.join(VIDEO_DIR, file_path))
|
||||
except TypeError:
|
||||
return guarantee_existance(os.path.join(VIDEO_DIR, "input_scenes"))
|
||||
|
||||
|
||||
def get_movie_output_directory(scene_class, camera_config, frame_duration):
|
|
@ -1,9 +1,9 @@
|
|||
import numpy as np
|
||||
|
||||
from constants import OUT
|
||||
from utils.bezier import interpolate
|
||||
from utils.space_ops import rotation_matrix
|
||||
from utils.space_ops import get_norm
|
||||
from manimlib.constants import OUT
|
||||
from manimlib.utils.bezier import interpolate
|
||||
from manimlib.utils.space_ops import get_norm
|
||||
from manimlib.utils.space_ops import rotation_matrix
|
||||
|
||||
STRAIGHT_PATH_THRESHOLD = 0.01
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
import numpy as np
|
||||
|
||||
from utils.bezier import bezier
|
||||
from utils.simple_functions import sigmoid
|
||||
from manimlib.utils.bezier import bezier
|
||||
from manimlib.utils.simple_functions import sigmoid
|
||||
|
||||
|
||||
def linear(t):
|
|
@ -1,7 +1,7 @@
|
|||
from functools import reduce
|
||||
import inspect
|
||||
import numpy as np
|
||||
import operator as op
|
||||
import inspect
|
||||
from functools import reduce
|
||||
|
||||
|
||||
def sigmoid(x):
|