Manim is an engine for precise programmatic animations, designed for creating explanatory math videos

Overview

pypi version MIT License Manim Subreddit Manim Discord docs

Manim is an engine for precise programmatic animations, designed for creating explanatory math videos.

Note, there are two versions of manim. This repository began as a personal project by the author of 3Blue1Brown for the purpose of animating those videos, with video-specific code available here. In 2020 a group of developers forked it into what is now the community edition, with a goal of being more stable, better tested, quicker to respond to community contributions, and all around friendlier to get started with. See this page for more details.

Installation

WARNING: These instructions are for ManimGL only. Trying to use these instructions to install ManimCommunity/manim or instructions there to install this version will cause problems. You should first decide which version you wish to install, then only follow the instructions for your desired version.

Note: To install manim directly through pip, please pay attention to the name of the installed package. This repository is ManimGL of 3b1b. The package name is manimgl instead of manim or manimlib. Please use pip install manimgl to install the version in this repository.

Manim runs on Python 3.6 or higher (Python 3.8 is recommended).

System requirements are FFmpeg, OpenGL and LaTeX (optional, if you want to use LaTeX). For Linux, Pango along with its development headers are required. See instruction here.

Directly

# Install manimgl
pip install manimgl

# Try it out
manimgl

For more options, take a look at the Using manim sections further below.

If you want to hack on manimlib itself, clone this repository and in that directory execute:

# Install manimgl
pip install -e .

# Try it out
manimgl example_scenes.py OpeningManimExample
# or
manim-render example_scenes.py OpeningManimExample

Directly (Windows)

  1. Install FFmpeg.
  2. Install a LaTeX distribution. MiKTeX is recommended.
  3. Install the remaining Python packages.
    git clone https://github.com/3b1b/manim.git
    cd manim
    pip install -e .
    manimgl example_scenes.py OpeningManimExample

Mac OSX

  1. Install FFmpeg, LaTeX in terminal using homebrew.

    brew install ffmpeg mactex
  2. Install latest version of manim using these command.

    git clone https://github.com/3b1b/manim.git
    cd manim
    pip install -e .
    manimgl example_scenes.py OpeningManimExample

Anaconda Install

  1. Install LaTeX as above.
  2. Create a conda environment using conda create -n manim python=3.8.
  3. Activate the environment using conda activate manim.
  4. Install manimgl using pip install -e ..

Using manim

Try running the following:

manimgl example_scenes.py OpeningManimExample

This should pop up a window playing a simple scene.

Some useful flags include:

  • -w to write the scene to a file
  • -o to write the scene to a file and open the result
  • -s to skip to the end and just show the final frame.
    • -so will save the final frame to an image and show it
  • -n to skip ahead to the n'th animation of a scene.
  • -f to make the playback window fullscreen

Take a look at custom_config.yml for further configuration. To add your customization, you can either edit this file, or add another file by the same name "custom_config.yml" to whatever directory you are running manim from. For example this is the one for 3blue1brown videos. There you can specify where videos should be output to, where manim should look for image files and sounds you want to read in, and other defaults regarding style and video quality.

Look through the example scenes to get a sense of how it is used, and feel free to look through the code behind 3blue1brown videos for a much larger set of example. Note, however, that developments are often made to the library without considering backwards compatibility with those old videos. To run an old project with a guarantee that it will work, you will have to go back to the commit which completed that project.

Documentation

Documentation is in progress at 3b1b.github.io/manim. And there is also a Chinese version maintained by @manim-kindergarten: docs.manim.org.cn (in Chinese).

manim-kindergarten wrote and collected some useful extra classes and some codes of videos in manim_sandbox repo.

Contributing

Is always welcome. As mentioned above, the community edition has the most active ecosystem for contributions, with testing and continuous integration, but pull requests are welcome here too. Please explain the motivation for a given change and examples of its effect.

License

This project falls under the MIT license.

Comments
  • Multiple problems in example_scene.py --> OpeningManimExample, WriteStuff  not working. I am receiving IndexError: 'List out of Range Error'. Any quick Fix?

    Multiple problems in example_scene.py --> OpeningManimExample, WriteStuff not working. I am receiving IndexError: 'List out of Range Error'. Any quick Fix?

    Encountered this error while playing the example_scene. The mentioned examples (i.e. OpeningManimExample and WriteStuff) is throwing IndexError The following is the errored output:

    But before that, I am using a windows system and downloaded manim 2days ago.

    The error message:

    C:\manim\manim-master\manimlib\mobject\svg\svg_mobject.py:125: UserWarning: g1-88 not recognized
      warnings.warn("%s not recognized" % ref)
    
    Traceback (most recent call last):
      File "C:\manim\manim-master\manimlib\extract_scene.py", line 155, in main
        scene = SceneClass(**scene_kwargs)
      File "C:\manim\manim-master\manimlib\scene\scene.py", line 75, in __init__
        self.construct()
      File "example_scenes.py", line 20, in construct
        title = TextMobject("This is some \\LaTeX")
      File "C:\manim\manim-master\manimlib\mobject\svg\tex_mobject.py", line 150, in __init__
        self.break_up_by_substrings()
      File "C:\manim\manim-master\manimlib\mobject\svg\tex_mobject.py", line 190, in break_up_by_substrings
        sub_tex_mob.move_to(self.submobjects[last_submob_index], RIGHT)
    IndexError: list index out of range 
    
    

    ###Hoping to get a fix soon 👍

    opened by P0intMaN 53
  • Latex is not recognized as an internal or external command, Later error converting to dvi

    Latex is not recognized as an internal or external command, Later error converting to dvi

    @Elteoremadebeethoven need your help again

    Examples other than SquareToCircle don't work. I have seen people on github posting similar queries but they are a bit confusing. Mind helping me?

    Screenshot (21)

    opened by gargVader 48
  • [concat @ <nums>] Impossible to Open

    [concat @ ] Impossible to Open "'DD:/Documents/Coding/Installations/manim/media/videos/example_scenes/480p15/partial_movie_files/SquareToCircle/00000.mp4'"

    I followed this tutorial: https://www.youtube.com/watch?v=ZltiKHFWmv8 After, I ran the python -m manim example_scenes.py SquareToCircle -pl command through the Windows terminal, in the manim repo folder, and got an error. Here is the trace:

    D:\Documents\Coding\Installations\manim>python -m manim example_scenes.py SquareToCircle -pl
    Media will be stored in media\. You can change this behavior by writing a different directory to media_dir.txt.
    [concat @ 000001a1d404bf80] Impossible to open 'DD:/Documents/Coding/Installations/manim/media/videos/example_scenes/480p15/partial_movie_files/SquareToCircle/00000.mp4'
    D:\Documents\Coding\Installations\manim\media\videos\example_scenes\480p15\partial_movie_files\SquareToCircle\partial_movie_file_list.txt: Protocol not found
    Did you mean file:D:\Documents\Coding\Installations\manim\media\videos\example_scenes\480p15\partial_movie_files\SquareToCircle\partial_movie_file_list.txt?
    
    File ready at D:\Documents\Coding\Installations\manim\media\videos\example_scenes\480p15\SquareToCircle.mp4
    
    Played 3 animations
    
    
    
    Traceback (most recent call last):
      File "D:\Documents\Coding\Installations\manim\manimlib\extract_scene.py", line 154, in main
        open_file_if_needed(scene.file_writer, **config)
      File "D:\Documents\Coding\Installations\manim\manimlib\extract_scene.py", line 35, in open_file_if_needed
        os.startfile(file_path)
    FileNotFoundError: [WinError 2] The system cannot find the file specified: 'D:\\Documents\\Coding\\Installations\\manim\\media\\videos\\example_scenes\\480p15\\SquareToCircle.mp4'
    

    I am using this version of manim: https://github.com/3b1b/manim/tree/3b088b12843b7a4459fe71eba96b70edafb7aa78

    opened by SuperMaZingCoder 43
  • Code() in file Code_mobject.py to display code with color highlighted works correctly with updates in text_mobject.py and svg_mobject.

    Code() in file Code_mobject.py to display code with color highlighted works correctly with updates in text_mobject.py and svg_mobject.

    you can use it as follow. if you put file into "assets/codes" folder then you don't need to specify full file path, just name of file is enough otherwise specify full file path. if generate_html_file==True it create a html file with color highlighted and save it to "assets/codes/generated_html_files/"

    from manimlib.imports import *
    class codeExample(Scene):
        def construct(self):
            heading = TextMobject("\"Hello, World\" Program", stroke_width=0).scale(1.3)
            heading.to_edge(UP)
            helloworldc = Code("helloworldc.c",
                               run_time=1,
                               scale_factor=0.6,
                               line_spacing=0.2,
                               tab_spacing=0.6,
                               insert_line_no=False,
                               style=code_styles_list[4],
                               background="rectangle",
                               language=code_languages_list["c"],
                               generate_html_file=True
                               )
            helloworldcpp = Code("helloworldcpp.cpp",
                                 run_time=1,
                                 scale_factor=0.6,
                                 line_spacing=0.2,
                                 tab_spacing=0.6,
                                 margin=0.3,
                                 insert_line_no=True,
                                 line_no_from=8,
                                 line_no_buff=0.4,
                                 style=code_styles_list[9],
                                 background="window",
                                 corner_radius=0.2,
                                 language=code_languages_list["cpp"],
                                 generate_html_file=True
                                 )
            helloworldc.move_to(np.array([-3.6, 0, 0]))
            helloworldcpp.move_to(np.array([3.1, 0, 0]))
            self.play(Write(heading), run_time=0.5)
            self.play(Write(helloworldc), run_time=1.3)
            self.draw_code_all_lines_at_a_time(helloworldcpp)
            self.wait()
    
        def draw_code_all_lines_at_a_time(self, Code):
            self.play(Write(Code.background_mobject), run_time=0.3)
            self.play(Write(Code.line_numbers), run_time=0.3)
            self.play(*[Write(Code.code[i]) for i in range(Code.code.__len__())],
                      run_time=Code.run_time)
    
    

    Output will be looks like ezgif-6-3eb6f393e805

    '''
    coordinate point is LEFT+UP corner
    
    Code is VGroup() with three things
    Code[0] is Code.background_mobject
        which can be a 
            Rectangle() if background == "rectangle" 
            VGroup() of Rectangle() and Dot() for three buttons
    Code[1] is Code.line_numbers
        Which is a VGroup() of Text() objects with line numbers as a text, this mean you can use 
            Code.line_numbers[0] or Code[1][0] to access first line number 
    Code[2] is Code.code
        Which is a VGroup() of lines with color highlighted, this mean you can use 
            Code.code[1] or Code[2][1] 
                line number 1
            Code.code[1][0] or Code.code[1][0] 
                first character of line number 1
            Code.code[1][0:5] or Code.code[1][0:5] 
                first five characters of line number 1
    
    '''
    

    Updated text_mobject() to use Text() as paragraph.

    class Test3(Scene):
        def construct(self):
            t = Text('this is a awesome', 'paragraph', 'With \nNewlines', '\tWith Tabs', '  With Spaces', 'With Alignments',
                     'center', "left", "right", line_spacing=0.1, alignment="left", t2c={"Tabs": RED})
            t.set_alignment("center", 7)
            t.set_alignment("left", 8)
            t.set_alignment("right", 9)
            #t.set_all_lines_alignment("center")
            t[0][0].set_color(GREEN)
            t[1][0:4].set_color(YELLOW)
            self.add(t)
            self.wait()
    

    Output Test6

    It solves the following problems

    1. display code with color highlighted
    2. manage to print single '{' or '}' because of using Text() instead of TextMobject() from https://github.com/3b1b/manim/issues/941#issuecomment-621615699
    3. Solved Text( ) transform animation for " " space character from https://github.com/3b1b/manim/issues/1017
    opened by NavpreetDevpuri 39
  • Fixed Some bugs of code_mobject.py and Text_mobject.py

    Fixed Some bugs of code_mobject.py and Text_mobject.py

    Fixed https://github.com/3b1b/manim/issues/1067 NOTE : SurroundingRectangle() only contains visible text.

    class te(Scene):
        def construct(self):
            text1 = Text(" ab ", font="Consolas", size=2)
            rect1 = SurroundingRectangle(text1)
            text1.chars[1].set_color(GREEN)
            self.add(text1,rect1)
    

    Output te

    class bug1(Scene):
        def construct(self):
            text1 = Text("  ab\ncd", font="Consolas", size=2)
            text2 = Text("ab\ngh", font="Consolas", size=2)
            rect1 = SurroundingRectangle(text1)
            rect2 = SurroundingRectangle(text2)
            self.play(Transform(remove_invisible_chars(text1), remove_invisible_chars(text2)), Transform(rect1, rect2))
            self.wait()
    

    Output bug1

    Added new parameters background_stroke_width and background_stroke_color

    class bug2andbug3(Scene):
        def construct(self):
            helloworldc = Code(
                "helloworldc.c",
                tab_width=4,
                background_stroke_width=1,
                background_stroke_color=WHITE,
                insert_line_no=True,
                style=Code.styles_list[4],
                background="window",
                language="cpp",
            )
            helloworldcpp = Code(
                "helloworldcpp.cpp",
                tab_width=4,
                background_stroke_width=1,
                background_stroke_color=WHITE,
                insert_line_no=True,
                style=Code.styles_list[15],
                background="window",
                language="cpp",
            )
            helloworldc.move_to(np.array([-3.6, 0, 0]))
            helloworldcpp.move_to(np.array([3.1, 0, 0]))
            self.add(helloworldc,helloworldcpp)
    

    Output bug2andbug3

    Updated Paragraph() and added new methods set_line_to_initial_position() and set_all_lines_to_initial_positions()

    class para(Scene):
        def construct(self):
            t = Paragraph('this is a awesome', 'paragraph', 'With \nNewlines', '\tWith Tabs', '  With Spaces',
                          'With Alignments',
                          'center', "left", "right")
            t.set_line_alignment("center", 7)
            t.set_line_alignment("right", 9)
            t.shift(2 * RIGHT)
            rect = SurroundingRectangle(t)
            self.add(t, rect)
            self.wait()
            self.play(t.set_all_lines_alignments, "right")
            self.play(t.set_line_to_initial_position, 4)
            self.play(t.set_all_lines_to_initial_positions)
            self.play(t.set_line_alignment, "center", 7)
            self.play(t.set_line_alignment, "right", 9)
            t.chars[0][5:7].set_color(GREEN)
            t[1][0:4].set_color(YELLOW)
            self.wait()
    

    Output ezgif-3-3dc23c79c5fa

    opened by NavpreetDevpuri 27
  • Exception: Xelatex error converting to xdv. See log output above or the log file: .\files\Tex\0edd36fe50692e98.log

    Exception: Xelatex error converting to xdv. See log output above or the log file: .\files\Tex\0edd36fe50692e98.log

    Hello, the moment I change "constants.py" from "TEX_USE_CTEX = False" to "TEX_USE_CTEX = True;, It returns an erro: File "D:\manim-master\manimlib\mobject\svg\tex_mobject.py", line 309, in __init__ TextMobject.__init__(self, *text_parts, **kwargs) File "D:\manim-master\manimlib\mobject\svg\tex_mobject.py", line 144, in __init__ self, self.arg_separator.join(tex_strings), **kwargs File "D:\manim-master\manimlib\mobject\svg\tex_mobject.py", line 44, in __init__ self.template_tex_file_body File "D:\manim-master\manimlib\utils\tex_file_writing.py", line 19, in tex_to_svg_file dvi_file = tex_to_dvi(tex_file) File "D:\manim-master\manimlib\utils\tex_file_writing.py", line 67, in tex_to_dvi "See log output above or the log file: %s" % log_file) Exception: Xelatex error converting to xdv. See log output above or the log file: .\files\Tex\0edd36fe50692e98.log , I need use Chinese, so I change "constants.py" .This erro has already been 3 days, and please tell me why, thanks. @HanwenZhu

    opened by FitzMusk 27
  • Nothing happens when manimgl is run!

    Nothing happens when manimgl is run!

    Describe the error

    No output on the console or no GUI shows up when manimgl is run from the command line (installed by pip install manimgl). I observe the same issue when running from this repository and installing using pip install -e . as well.

    Code and Error

    manimgl
    

    Environment

    OS System: Ubuntu 20.04.1 (5.8.0.38-generic) OpenGL version: 4.6.0 NVIDIA 450.102.04 manim version: 1.0.0 (pip install manimgl) python version: Tried both 3.6 and 3.8

    opened by heethesh 26
  • Incorrect triangulation of polygons with many holes

    Incorrect triangulation of polygons with many holes

    I tried to use Text to write Chinese, but there were many problems. For example, the simplest one is to write the word "回". But the result is this (contains unnecessary connections):

    class TextBug(Scene):
        def construct(self):
            txt = Text("回", font="庞门正道标题体", height=FRAME_HEIGHT-1)
            self.add(txt)
    

    result I lowered its opacity and showed the point set and its indices. The result is this:

    class TextBug(Scene):
        def construct(self):
            txt = Text("回", font="庞门正道标题体", height=FRAME_HEIGHT-1)
            txt.set_fill(opacity=0.3)
            self.add(txt)
            points = txt[0].get_points()
            ind = index_labels(points).set_color(PURPLE).set_stroke(width=1)
            self.add(ind)
    

    TextBug The position and order of the point set are correct. So I suspect that there may be an error in the triangulation, so I displayed the inner triangles in the triangulation, and the result is this:

    class TextBug(Scene):
        def construct(self):
            txt = Text("回", font="庞门正道标题体", height=FRAME_HEIGHT-1)
            txt.set_fill(opacity=0.3)
            self.add(txt)
            points = txt[0].get_points()
            ind = index_labels(points).set_color(PURPLE).set_stroke(width=1)
            self.add(ind)
            tri = txt[0].get_triangulation()
            tri_indices = tri[len(points):]
            a = tri_indices[0::3]
            b = tri_indices[1::3]
            c = tri_indices[2::3]
            for i, _ in enumerate(a):
                self.add(Polygon(points[a[i]], points[b[i]], points[c[i]],\
                stroke_color=WHITE, stroke_width=4, fill_color=ORANGE, fill_opacity=0.5))
    

    TextTri Basically it is certain that there is a problem, but I don't know how to solve it.


    In addition, this is the svg file of this Chinese character, you can use SVGMobject to test it. d17bf5c77d8120cd.txt (change its extension to .svg, because GitHub does not support uploading svg files here) And it this way, not only Text will have problems, but SVGMobject and even other mobjects may also have such problems. So, @3b1b please take a look at this.

    opened by TonyCrane 21
  • Problems with setting up the engine

    Problems with setting up the engine

    I use the version of manim mentioned in the tutorial in the readme file which is in Python 2.7 and get this:

    Traceback (most recent call last):
      File "D:\manim-e4d44bf2bfdd1343da75041b215c9675b8018a79\extract_scene.py", line 14, in <module>
        from scene.scene import Scene
      File "D:\manim-e4d44bf2bfdd1343da75041b215c9675b8018a79\scene\scene.py", line 10, in <module>
        from tqdm import tqdm as ProgressDisplay
    ImportError: No module named tqdm
    
    opened by BolnayaTPrincessa 21
  • Refactor the structure of the package and add configuration guidelines

    Refactor the structure of the package and add configuration guidelines

    Motivation

    The current manimlib is relatively inconsistent with the package specification, so some slight refactoring has been carried out. And added an automation guide for setting custom_default.yml

    Proposed changes

    • Move manimlib/__init__.py into manimlib/__main__.py as an entry point of manim and remove all non-manim imports.
    • Move manimlib/imports.py into manimlib/__init__.py. So we can use from manimlib import * to import this package.
    • Add empty __init__.py for each folder
    • Delete old entry point manim.py, Use manimgl (or manim-render) instead of python manim.py.
    • Change file names of yaml files: custom_defaults.yml -> custom_config.yml, defaults.yml -> default_config.yml
    • Add configuration guide, which will be run when there is no configuration file (custom_config.yml or manimlib/default_config.yml)
    • Add a warning if there is no custom_config.yml and using the default_config.yml
    • Add a CLI flag --config. Use manimgl --config to create a config file according to the guide for a second time.
    • Update README and docs
    opened by TonyCrane 20
  • Basic install problems

    Basic install problems

    just at the beginning - trying to get the first commands to work - pip install manimlib - the Visual Studio problem at the bottom is missing msvcp140_dll file. I have spend 4 hours this afternoon trying to solve that problem and can't even get that done. Any help is appreciated - here is the command and the result run in the cmd window. I downloaded manim today so it is the latest version of files

    C:\Users\Admin\Desktop\manim-master>pip install manimlib >install.txt ERROR: Command errored out with exit status 1: command: 'c:\users\admin\appdata\local\programs\python\python37\python.exe' -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\Users\Admin\A ppData\Local\Temp\pip-install-vt3ww8c9\pycairo\setup.py'"'"'; file='"'" 'C:\Users\Admin\AppData\Local\Temp\pip-install-vt3ww8c9\pycairo\setup.py '"'"';f=getattr(tokenize, '"'"'open'"'"', open)(file);code=f.read().replace( '"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, file, '"'"'exec'" '"'))' install --record 'C:\Users\Admin\AppData\Local\Temp\pip-record-lsh3vkpj\i nstall-record.txt' --single-version-externally-managed --compile --install-heade rs 'c:\users\admin\appdata\local\programs\python\python37\Include\pycairo' cwd: C:\Users\Admin\AppData\Local\Temp\pip-install-vt3ww8c9\pycairo
    Complete output (18 lines): running install running build running build_py creating build creating build\lib.win-amd64-3.7 creating build\lib.win-amd64-3.7\cairo copying cairo_init_.py -> build\lib.win-amd64-3.7\cairo copying cairo_init_.pyi -> build\lib.win-amd64-3.7\cairo copying cairo\py.typed -> build\lib.win-amd64-3.7\cairo running build_ext building 'cairo.cairo' extension creating build\temp.win-amd64-3.7 creating build\temp.win-amd64-3.7\Release creating build\temp.win-amd64-3.7\Release\cairo C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\x86_amd64\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD -DPYCAIRO_VERSION_MAJOR=1 -DPYCAIRO_VERSION MINOR=19 -DPYCAIRO_VERSION_MICRO=1 -Ic:\users\admin\appdata\local\programs\pytho n\python37\include -Ic:\users\admin\appdata\local\programs\python\python37\inclu de "-IC:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE" "-IC:\Prog ram Files (x86)\Windows Kits\10\include\10.0.10240.0\ucrt" "-IC:\Program Files ( x86)\Windows Kits\8.1\include\shared" "-IC:\Program Files (x86)\Windows Kits\8.1 \include\um" "-IC:\Program Files (x86)\Windows Kits\8.1\include\winrt" /Tccairo/ device.c /Fobuild\temp.win-amd64-3.7\Release\cairo/device.obj device.c c:\users\admin\appdata\local\temp\pip-install-vt3ww8c9\pycairo\cairo\pycairo .h(37): fatal error C1083: Cannot open include file: 'cairo.h': No such file or directory error: command 'C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\B IN\x86_amd64\cl.exe' failed with exit status 2 ---------------------------------------- ERROR: Command errored out with exit status 1: 'c:\users\admin\appdata\local\pro grams\python\python37\python.exe' -u -c 'import sys, setuptools, tokenize; sys.a rgv[0] = '"'"'C:\Users\Admin\AppData\Local\Temp\pip-install-vt3ww8c9\pyca iro\setup.py'"'"'; file='"'"'C:\Users\Admin\AppData\Local\Temp\pip-in stall-vt3ww8c9\pycairo\setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open) (file);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(co mpile(code, file, '"'"'exec'"'"'))' install --record 'C:\Users\Admin\AppData \Local\Temp\pip-record-lsh3vkpj\install-record.txt' --single-version-externally- managed --compile --install-headers 'c:\users\admin\appdata\local\programs\pytho n\python37\Include\pycairo' Check the logs for full command output.

    opened by lakeside-park 20
  • Using MObject.become method within a updater results in a loss of reference to the screen object.

    Using MObject.become method within a updater results in a loss of reference to the screen object.

    Consider the following example:

    class Example(Scene):
        def construct(self):
            rateOfChange = ValueTracker(1.00)
            def generateText():
                return MathTex(rateOfChange.get_value())
            currentText = generateText()
            self.play(Create(currentText))
            currentText.add_updater(lambda m : m.become(generateText()))
            self.play(rateOfChange.animate.set_value(2.00))
            self.play(currentText.animate.shift(LEFT*3))
            self.wait(1)
    

    Here, a value tracker is used to animate between the values 0 and 1.

    The text on the screen transitions to a new MathTex object each frame using the become method.

    However, at the end of the update animation, the:

    currentText.animate.shift(LEFT*3)
    

    No longer works because the currentText variable no longer references the new objects created in each frame.

    bug 
    opened by michaelnicol 0
  • Unable to remove a object on the screen when using an updater

    Unable to remove a object on the screen when using an updater

    I have the following code:

    class Example2(Scene):
        def construct(self):
            
            step = ValueTracker(1)
            square = Square()
            circle = Circle()
    
            self.add(circle)
            self.add(square)
    
            def circleUpdater(m):
                m.shift(LEFT*0.1)
                self.remove(square)
    
            circle.add_updater(
                lambda m : circleUpdater(m)
            )
    
            self.play(step.animate.set_value(0.5))
            self.wait(1)
    

    It works by creating a circle that has an updater that should remove the square in each frame. The circle is also shifted to the left each frame. However, the square is not removed in each frame that the updater fires. The square only gets removed at the end of the animate.set_value.

    Details

    Manim Community v0.17.1 Windows 11

    Proof:

    In the video, you can see that it takes one second for the square to remove, which signifies it is being removed after the self.play has finished rather then during.

    ezgif com-gif-maker (4)

    bug 
    opened by michaelnicol 0
  • Segmentation Fault (core dumped) for Python 3.10 and 3.11 on Ubuntu

    Segmentation Fault (core dumped) for Python 3.10 and 3.11 on Ubuntu

    Describe the bug

    When using manim-render (v1.6.1) in a GitHub action, it issues a Segmentation Fault when using Python versions 3.10 and 3.11. For versions 3.7, 3.8, and 3.9, everything works fine.

    I am aware of #1387 and #1406, but nothing seemed to make it work.

    Code:

    The faulty line of code is:

    xvfb-run -a -s "-screen 0 1400x900x24" manim-render -l example.py Example ThreeDExample
    

    However, it is to mention that it works just fine for earlier versions of Python, or working on MacOS.

    Full information is to be found in the jobs run and in the workflow file.

    Wrong display or Error traceback:

    image

    (some lines skipped)

    image

    Additional context

    I created a Manim plugin, and I use GitHub actions to validate my code. This makes my CI tests fail.

    bug 
    opened by jeertmans 0
  • Invalid color type Exception occured running ControlsExample in example_scenes.py

    Invalid color type Exception occured running ControlsExample in example_scenes.py

    I ran the ControlsExample in example_scenes.py

    manimgl .\example_scenes.py ControlsExample
    

    and this Exception occured:

    Traceback (most recent call last):
      File "E:\Anaconda\lib\runpy.py", line 194, in _run_module_as_main
        return _run_code(code, main_globals, None,
      File "E:\Anaconda\lib\runpy.py", line 87, in _run_code
        exec(code, run_globals)
      File "E:\Anaconda\Scripts\manimgl.exe\__main__.py", line 7, in <module>
      File "D:\programFiles\manim\manim\manimlib\__main__.py", line 25, in main
        scene.run()
      File "D:\programFiles\manim\manim\manimlib\scene\scene.py", line 118, in run
        self.setup()
      File ".\example_scenes.py", line 636, in setup
        self.color_picker = ColorSliders()
      File "D:\programFiles\manim\manim\manimlib\mobject\interactive.py", line 298, in __init__
        self.a_slider.slider.set_color_by_gradient([BLACK, WHITE])
      File "D:\programFiles\manim\manim\manimlib\mobject\mobject.py", line 1294, in set_color_by_gradient
        self.set_color(colors)
      File "D:\programFiles\manim\manim\manimlib\mobject\types\vectorized_mobject.py", line 271, in set_co
        self.set_fill(color, opacity=opacity, recurse=recurse)
      File "D:\programFiles\manim\manim\manimlib\mobject\types\vectorized_mobject.py", line 150, in set_fi
        self.set_rgba_array_by_color(color, opacity, 'fill_rgba', recurse)
      File "D:\programFiles\manim\manim\manimlib\mobject\mobject.py", line 1245, in set_rgba_array_by_colo
        rgbs = np.array([color_to_rgb(c) for c in listify(color)])
      File "D:\programFiles\manim\manim\manimlib\mobject\mobject.py", line 1245, in <listcomp>
        rgbs = np.array([color_to_rgb(c) for c in listify(color)])
      File "D:\programFiles\manim\manim\manimlib\utils\color.py", line 27, in color_to_rgb
        raise Exception("Invalid color type")
    Exception: Invalid color type
    

    it seems like self.a_slider.slider.set_color_by_gradient([BLACK, WHITE]) didn't work right.

    I debug the program and found that it sent paraments colors with value (['#000000', '#FFFFFF'],) to self.set_color , which caused the Expection.

    I believe it's a bug that need to be fixed.

    bug 
    opened by YalienY 0
  • Errno 2 Help

    Errno 2 Help

    Describe the error

    Hello, I've been trying to install Manim, but I keep running into the same errors. I've followed the instructions like how they were laid out, but I can't open up any of the example scenes. I'm running Mac OS Ventura on an m1 pro . Anyways, this is what I get when input .

    Error /Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/pydub/utils.py:170: RuntimeWarning: Couldn't find ffmpeg or avconv - defaulting to ffmpeg, but may not work warn("Couldn't find ffmpeg or avconv - defaulting to ffmpeg, but may not work", RuntimeWarning) Traceback (most recent call last): File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/manimpango/init.py", line 14, in from .cmanimpango import * # noqa: F403,F401 ImportError: dlopen(/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/manimpango/cmanimpango.cpython-310-darwin.so, 0x0002): Library not loaded: /opt/homebrew/opt/pango/lib/libpangocairo-1.0.0.dylib Referenced from: /Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/manimpango/cmanimpango.cpython-310-darwin.so Reason: tried: '/opt/homebrew/opt/pango/lib/libpangocairo-1.0.0.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/opt/homebrew/opt/pango/lib/libpangocairo-1.0.0.dylib' (no such file), '/opt/homebrew/opt/pango/lib/libpangocairo-1.0.0.dylib' (no such file), '/usr/lib/libpangocairo-1.0.0.dylib' (no such file, not in dyld cache)

    During handling of the above exception, another exception occurred:

    Traceback (most recent call last): File "/Library/Frameworks/Python.framework/Versions/3.10/bin/manim", line 5, in from manim.main import main File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/manim/init.py", line 76, in from .mobject.table import * File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/manim/mobject/table.py", line 77, in from manim.mobject.text.text_mobject import Paragraph File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/manim/mobject/text/text_mobject.py", line 64, in import manimpango File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/manimpango/init.py", line 35, in raise ImportError(msg) ImportError:

    ManimPango could not import and load the necessary shared libraries. This error may occur when ManimPango and its dependencies are improperly set up. Please make sure the following versions are what you expect:

    * ManimPango v0.4.2, Python v3.10.7
    

    If you believe there is a greater problem, feel free to contact us or create an issue on GitHub:

    * Discord: https://www.manim.community/discord/
    * GitHub: https://github.com/ManimCommunity/ManimPango/issues
    

    Original error: dlopen(/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/manimpango/cmanimpango.cpython-310-darwin.so, 0x0002): Library not loaded: /opt/homebrew/opt/pango/lib/libpangocairo-1.0.0.dylib Referenced from: /Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/manimpango/cmanimpango.cpython-310-darwin.so Reason: tried: '/opt/homebrew/opt/pango/lib/libpangocairo-1.0.0.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/opt/homebrew/opt/pango/lib/libpangocairo-1.0.0.dylib' (no such file), '/opt/homebrew/opt/pango/lib/libpangocairo-1.0.0.dylib' (no such file), '/usr/lib/libpangocairo-1.0.0.dylib' (no such file, not in dyld cache)

    opened by zunzun08 0
Releases(v1.6.1)
  • v1.6.1(Apr 13, 2022)

    What's Changed

    • Added a \overset as a special string by @EbbDrop in https://github.com/3b1b/manim/pull/1783
    • Fix bug when handling multi-line tex by @YishiMichael in https://github.com/3b1b/manim/pull/1785
    • Interpolate fix by @3b1b in https://github.com/3b1b/manim/pull/1788
    • Fix ImageMobject by overriding set_color method by @TonyCrane in https://github.com/3b1b/manim/pull/1791

    New Contributors

    • @EbbDrop made their first contribution in https://github.com/3b1b/manim/pull/1783

    Full Changelog: https://3b1b.github.io/manim/development/changelog.html#v1-6-1

    Checksums

    MD5
    cd5eb952ffc1ff4fe9206a6a3dd08e2e  manimgl-1.6.1-docs.zip
    767127eb9f8b526faccf872328b72c90  manimgl-1.6.1-py310-none-any.whl
    bb3caa5d426e446407595bf6c8a5843c  manimgl-1.6.1-py37-none-any.whl
    fb85b412d0a1a66cb2d2111d12329443  manimgl-1.6.1-py38-none-any.whl
    c0c655376ca424147c8ea2ec1a828372  manimgl-1.6.1-py39-none-any.whl
    523b03d1089212cf41d7fb44afb664bd  Source code (zip) manim-1.6.1.zip
    c4387c801207ca044412016d5869bd7c  Source code (tar.gz) manim-1.6.1.tar.gz
    
    SHA256
    142dd61a39d50da924401e3495918801566e3fb152cca290bba779154ffebcc7  manimgl-1.6.1-docs.zip
    8f1cd581b1656bf8b091b88909c96f3579b1a273e55b2ae9d55519bd4f2fe84c  manimgl-1.6.1-py310-none-any.whl
    4d152b7191d922a78efb3b421a7db33b354ee54aecfe8806f86ec7b656b9c2d3  manimgl-1.6.1-py37-none-any.whl
    78f1a069ea97810c8bccd2e415e40b9c5d03ee7d485b0c5c16674ff786cd3a9b  manimgl-1.6.1-py38-none-any.whl
    b53deef6bb015859c397b0c7fc918005169969468aee81307636457eeea0435c  manimgl-1.6.1-py39-none-any.whl
    3d3d2a6f6239ab4b15ce95e245c89cf8b80366c184c6668a0b2e59637e6f0a00  Source code (zip) manim-1.6.1.zip
    424116107f8ba627a9c6de6dc9d475f24479c8e96cb48862da40d6a68d8e0c1e  Source code (tar.gz) manim-1.6.1.tar.gz
    
    Source code(tar.gz)
    Source code(zip)
    manimgl-1.6.1-docs.zip(605.85 KB)
    manimgl-1.6.1-py310-none-any.whl(230.41 KB)
    manimgl-1.6.1-py37-none-any.whl(230.41 KB)
    manimgl-1.6.1-py38-none-any.whl(230.41 KB)
    manimgl-1.6.1-py39-none-any.whl(230.41 KB)
  • v1.6.0(Apr 7, 2022)

    What's Changed

    • Python 3.6 is no longer supported
    • Specify UTF-8 encoding for tex files by @YishiMichael in https://github.com/3b1b/manim/pull/1748
    • Reorganize getters for ParametricCurve by @TurkeyBilly in https://github.com/3b1b/manim/pull/1757
    • Fix the width of riemann rectangles by @widcardw in https://github.com/3b1b/manim/pull/1762
    • Refactor Text with the latest manimpango by @YishiMichael in https://github.com/3b1b/manim/pull/1751
    • Add type hints according to PEP 484 and PEP 604 by @TonyCrane in https://github.com/3b1b/manim/pull/1736
    • Video work by @3b1b in https://github.com/3b1b/manim/pull/1764
    • Adjust some typings by @YishiMichael in https://github.com/3b1b/manim/pull/1765
    • Give the user feedback for SVGs that take a while by @sunkisser in https://github.com/3b1b/manim/pull/1766
    • Small camera/3d updates by @3b1b in https://github.com/3b1b/manim/pull/1770
    • Construct LabelledString base class for MarkupText and MTex by @YishiMichael in https://github.com/3b1b/manim/pull/1772
    • Fix typo by @YishiMichael in https://github.com/3b1b/manim/pull/1777
    • Remove unnecessary raise statement by @YishiMichael in https://github.com/3b1b/manim/pull/1778
    • Refactor LabelledString and relevant classes by @YishiMichael in https://github.com/3b1b/manim/pull/1779
    • Add support for substring and case_sensitive parameters by @YishiMichael in https://github.com/3b1b/manim/pull/1780
    • Some fix by @TonyCrane in https://github.com/3b1b/manim/pull/1781

    New Contributors

    • @sunkisser made their first contribution in https://github.com/3b1b/manim/pull/1766

    Full Changelog: https://3b1b.github.io/manim/development/changelog.html#v1-6-0

    Checksums

    MD5
    877f9dc0f17e3d7d58b42a168b4f9681  manimgl-1.6.0-docs.zip
    22eb4429a5bbc077159cc8f2f9275f1e  manimgl-1.6.0-py310-none-any.whl
    c6bab7df6e065ad9e1bdc6bba47d3bca  manimgl-1.6.0-py37-none-any.whl
    57375234a3333ec87778940ac034c514  manimgl-1.6.0-py38-none-any.whl
    32ee2baa4091ce379ba24d30cd295d4e  manimgl-1.6.0-py39-none-any.whl
    05f2b80ea5cff97fb4866c5d9239abbd  Source code (zip) manim-1.6.0.zip
    b743343cf89a17b99a44bb983d86cc67  Source code (tar.gz) manim-1.6.0.tar.gz
    
    SHA256
    366c455f8f6057200e17927b3d83f60a729b67738f4e2293ec517ed462a814a1  manimgl-1.6.0-docs.zip
    ebeee869835dd62948e2f941a4485ad37e6803e517f6b3aea891db8462df6a3e  manimgl-1.6.0-py310-none-any.whl
    89ced01549fb38dd1e958967ecc131d73db624d333b9f4503a71152bfde82265  manimgl-1.6.0-py37-none-any.whl
    f1e486852a96679fce953848902b19842ac45aafbb6948abed35fccacde3fad9  manimgl-1.6.0-py38-none-any.whl
    30a54ae57cca1afefc7f56002c2748215601486c674b9a27f91589841ae26f13  manimgl-1.6.0-py39-none-any.whl
    818d12552b307b5db0bbd4ae70052468008b2a3e9f91d9a397eccc13f7361e5e  Source code (zip) manim-1.6.0.zip
    d6a885a16722a13e4f2bf0a6aa2a33dee506dd7b0acb22b95d08c9a4ea0d2a4d  Source code (tar.gz) manim-1.6.0.tar.gz
    
    Source code(tar.gz)
    Source code(zip)
    manimgl-1.6.0-docs.zip(605.66 KB)
    manimgl-1.6.0-py310-none-any.whl(230.29 KB)
    manimgl-1.6.0-py37-none-any.whl(230.29 KB)
    manimgl-1.6.0-py38-none-any.whl(230.29 KB)
    manimgl-1.6.0-py39-none-any.whl(230.29 KB)
  • v1.5.0(Feb 16, 2022)

    What's Changed

    • Clean dependencies by @TonyCrane in https://github.com/3b1b/manim/pull/1728
    • Refactor MTex and implement TransformMatchingMTex by @YishiMichael in https://github.com/3b1b/manim/pull/1725
    • Implement ImplicitFunction by @YishiMichael in https://github.com/3b1b/manim/pull/1727
    • Attempt to refactor SVGMobject with svgelements by @YishiMichael in https://github.com/3b1b/manim/pull/1731
    • Imports update, dict keys removal etc. by @donno2048 in https://github.com/3b1b/manim/pull/1737
    • Video work by @3b1b in https://github.com/3b1b/manim/pull/1739
    • Fix Write bug by @3b1b in https://github.com/3b1b/manim/pull/1740
    • Presenter mode bug fix by @3b1b in https://github.com/3b1b/manim/pull/1742
    • Add text_config for DecimalNumber by @TurkeyBilly in https://github.com/3b1b/manim/pull/1744
    • Reorganize inheriting order and refactor SVGMobject by @YishiMichael in https://github.com/3b1b/manim/pull/1745
    • Change interaction-to-embed keybinding by @3b1b in https://github.com/3b1b/manim/pull/1746

    New Contributors

    • @donno2048 made their first contribution in https://github.com/3b1b/manim/pull/1737

    Full Changelog: https://3b1b.github.io/manim/development/changelog.html#v1-5-0

    Checksums

    MD5
    0292366bba1c1f7a3d4d15d7e0adadf4  manimgl-1.5.0-docs.zip
    78a341c0779db1112cc0ca67e2d011f2  manimgl-1.5.0-py310-none-any.whl
    071cc190fe279b07ee84aa3ae1245696  manimgl-1.5.0-py36-none-any.whl
    34adfab2be39cf126f922bd187287da5  manimgl-1.5.0-py37-none-any.whl
    4d036aa68bbc9021bac78770b4bf2df1  manimgl-1.5.0-py38-none-any.whl
    64cdef77128e7c8033ffcd2a7b67a3c7  manimgl-1.5.0-py39-none-any.whl
    3f5e4515a93f158cad476b90717db1ec  Source code (zip) manim-1.5.0.zip
    b5d44014f31ca389af938952a688d09f  Source code (tar.gz) manim-1.5.0.tar.gz
    
    SHA256
    aa334fe837b1c78802059d8e428373c173d85c627d69f21f057e35bca205bc6c  manimgl-1.5.0-docs.zip
    2241542bb252ecdf9c3f7f7c50cbbd6ea8e22a29e256cd8d689c0967c260a091  manimgl-1.5.0-py310-none-any.whl
    93ff75e29626a68a23fe2ce1c892eeefb8c6f9fa2f7029aafa9cea68823395a0  manimgl-1.5.0-py36-none-any.whl
    c9c1ddcdbc9ab43817e49cd51c26ef32b2f91be1e0c8d32aff17094c8defd894  manimgl-1.5.0-py37-none-any.whl
    4231feda935d74b20eaae98081b08d77714b8acf1460326e5dd1f979fcd12e21  manimgl-1.5.0-py38-none-any.whl
    dac2ff9e02803f7b4dd9db1991d865080af66c84300513bf79517a173410bef2  manimgl-1.5.0-py39-none-any.whl
    9574692a1565e6c3ecf651c031a0558e38d77199b6abe50ac63b6cd0a2e8677d  Source code (zip) manim-1.5.0.zip
    07629c2668790449e277df6ce23296c1ba6a5612882394bd71778029ce80a231  Source code (tar.gz) manim-1.5.0.tar.gz
    
    Source code(tar.gz)
    Source code(zip)
    manimgl-1.5.0-docs.zip(603.14 KB)
    manimgl-1.5.0-py310-none-any.whl(218.50 KB)
    manimgl-1.5.0-py36-none-any.whl(218.50 KB)
    manimgl-1.5.0-py37-none-any.whl(218.50 KB)
    manimgl-1.5.0-py38-none-any.whl(218.50 KB)
    manimgl-1.5.0-py39-none-any.whl(218.50 KB)
  • v1.4.1(Feb 4, 2022)

    What's Changed

    • Temporarily fix boolean operation bug by @TurkeyBilly in https://github.com/3b1b/manim/pull/1724
    • Import Iterable from collections.abc instead of collections which is deprecated since python 3.9 by @TonyCrane in https://github.com/3b1b/manim/commit/d2e0811285f7908e71a65e664fec88b1af1c6144

    Full Changelog: https://3b1b.github.io/manim/development/changelog.html#v1-4-1

    Source code(tar.gz)
    Source code(zip)
  • v1.4.0(Jan 30, 2022)

    What's Changed

    • Add option to add ticks on x-axis in BarChart() by @DangGiaChi in https://github.com/3b1b/manim/pull/1694
    • Video work by @3b1b in https://github.com/3b1b/manim/pull/1697
    • removed extra 'all' from comments by @Suji04 in https://github.com/3b1b/manim/pull/1702
    • Adding "label_buff" config parameter for Brace by @TurkeyBilly in https://github.com/3b1b/manim/pull/1704
    • Fix "Code is unreachable Pylance" warning for NumberPlane by @TurkeyBilly in https://github.com/3b1b/manim/pull/1709
    • Improve handling of SVG transform and Some refactors by @TonyCrane in https://github.com/3b1b/manim/pull/1712
    • Parse and generate style for SVG by @TonyCrane in https://github.com/3b1b/manim/pull/1717
    • Text fix by @3b1b in https://github.com/3b1b/manim/pull/1718
    • Refactor MTex and some clean-ups by @YishiMichael in https://github.com/3b1b/manim/pull/1716
    • Improve config helper by @TonyCrane in https://github.com/3b1b/manim/pull/1721
    • Parse style from style element and Add support to line element of SVG by @TonyCrane in https://github.com/3b1b/manim/pull/1719
    • Handle explicit color-related commands by @YishiMichael in https://github.com/3b1b/manim/pull/1720
    • Add a staticmethod for tex rendering in MTex by @YishiMichael in https://github.com/3b1b/manim/pull/1723

    New Contributors

    • @DangGiaChi made their first contribution in https://github.com/3b1b/manim/pull/1694

    Full Changelog: https://3b1b.github.io/manim/development/changelog.html#v1-4-0

    Source code(tar.gz)
    Source code(zip)
  • v1.3.0(Dec 14, 2021)

    What's Changed

    • Fix parameter typo by @YishiMichael in https://github.com/3b1b/manim/pull/1653
    • Fix the bug of rotating camera by @widcardw in https://github.com/3b1b/manim/pull/1655
    • Update the link of the Chinese Ver. Docs by @050644zf in https://github.com/3b1b/manim/pull/1658
    • Refactor command handling in svg_mobject.py by @YishiMichael in https://github.com/3b1b/manim/pull/1662
    • Overridden add operations for mobjects by @TurkeyBilly in https://github.com/3b1b/manim/pull/1667
    • Add boolean operations for mobjects by @YishiMichael in https://github.com/3b1b/manim/pull/1675
    • Video work by @3b1b in https://github.com/3b1b/manim/pull/1688
    • Video work by @3b1b in https://github.com/3b1b/manim/pull/1691
    • Construct MTex by @YishiMichael in https://github.com/3b1b/manim/pull/1678

    New Contributors

    • @widcardw made their first contribution in https://github.com/3b1b/manim/pull/1655
    • @050644zf made their first contribution in https://github.com/3b1b/manim/pull/1658

    Full Changelog: https://3b1b.github.io/manim/development/changelog.html#v1-3-0

    Source code(tar.gz)
    Source code(zip)
  • v1.2.0(Oct 16, 2021)

  • v1.1.0(Jul 28, 2021)

  • v1.0.0(Feb 15, 2021)

Owner
Grant Sanderson
I make videos about math.
Grant Sanderson
In this project, we create and implement a deep learning library from scratch.

ARA In this project, we create and implement a deep learning library from scratch. Table of Contents Deep Leaning Library Table of Contents About The

22 Aug 23, 2022
PyTorch version implementation of DORN

DORN_PyTorch This is a PyTorch version implementation of DORN Reference H. Fu, M. Gong, C. Wang, K. Batmanghelich and D. Tao: Deep Ordinal Regression

Zilin.Zhang 3 Apr 27, 2022
This is the official PyTorch implementation of our paper: "Artistic Style Transfer with Internal-external Learning and Contrastive Learning".

Artistic Style Transfer with Internal-external Learning and Contrastive Learning This is the official PyTorch implementation of our paper: "Artistic S

51 Dec 20, 2022
Codebase for Inducing Causal Structure for Interpretable Neural Networks

Interchange Intervention Training (IIT) Codebase for Inducing Causal Structure for Interpretable Neural Networks Release Notes 12/01/2021: Code and Pa

Zen 6 Oct 10, 2022
Implementation for paper "STAR: A Structure-aware Lightweight Transformer for Real-time Image Enhancement" (ICCV 2021).

STAR-pytorch Implementation for paper "STAR: A Structure-aware Lightweight Transformer for Real-time Image Enhancement" (ICCV 2021). CVF (pdf) STAR-DC

43 Dec 21, 2022
Projects of Andfun Yangon

AndFunYangon Projects of Andfun Yangon First Commit We can use gsearch.py to sea

Htin Aung Lu 1 Dec 28, 2021
ScriptProfilerPy - Module to visualize where your python script is slow

ScriptProfiler helps you track where your code is slow It provides: Code lines t

Lucas BLP 3 Jun 02, 2022
Code for Private Recommender Systems: How Can Users Build Their Own Fair Recommender Systems without Log Data? (SDM 2022)

Private Recommender Systems: How Can Users Build Their Own Fair Recommender Systems without Log Data? (SDM 2022) We consider how a user of a web servi

joisino 20 Aug 21, 2022
Quantify the difference between two arbitrary curves in space

similaritymeasures Quantify the difference between two arbitrary curves Curves in this case are: discretized by inidviudal data points ordered from a

Charles Jekel 175 Jan 08, 2023
A framework for joint super-resolution and image synthesis, without requiring real training data

SynthSR This repository contains code to train a Convolutional Neural Network (CNN) for Super-resolution (SR), or joint SR and data synthesis. The met

83 Jan 01, 2023
Constrained Logistic Regression - How to apply specific constraints to logistic regression's coefficients

Constrained Logistic Regression Sample implementation of constructing a logistic regression with given ranges on each of the feature's coefficients (v

1 Dec 29, 2021
Enhancing Column Generation by a Machine-Learning-BasedPricing Heuristic for Graph Coloring

Enhancing Column Generation by a Machine-Learning-BasedPricing Heuristic for Graph Coloring (to appear at AAAI 2022) We propose a machine-learning-bas

YunzhuangS 2 May 02, 2022
[ICLR 2021] "Neural Architecture Search on ImageNet in Four GPU Hours: A Theoretically Inspired Perspective" by Wuyang Chen, Xinyu Gong, Zhangyang Wang

Neural Architecture Search on ImageNet in Four GPU Hours: A Theoretically Inspired Perspective [PDF] Wuyang Chen, Xinyu Gong, Zhangyang Wang In ICLR 2

VITA 156 Nov 28, 2022
Implementation of our paper 'RESA: Recurrent Feature-Shift Aggregator for Lane Detection' in AAAI2021.

RESA PyTorch implementation of the paper "RESA: Recurrent Feature-Shift Aggregator for Lane Detection". Our paper has been accepted by AAAI2021. Intro

137 Jan 02, 2023
Deep Learning tutorials in jupyter notebooks.

DeepSchool.io Sign up here for Udemy Course on Machine Learning (Use code DEEPSCHOOL-MARCH to get 85% off course). Goals Make Deep Learning easier (mi

Sachin Abeywardana 1.8k Dec 28, 2022
PyGCL: Graph Contrastive Learning Library for PyTorch

PyGCL: Graph Contrastive Learning for PyTorch PyGCL is an open-source library for graph contrastive learning (GCL), which features modularized GCL com

GCL: Graph Contrastive Learning Library for PyTorch 594 Jan 08, 2023
A unified 3D Transformer Pipeline for visual synthesis

Overview This is the official repo for the paper: NÜWA: Visual Synthesis Pre-training for Neural visUal World creAtion. NÜWA is a unified multimodal p

Microsoft 2.6k Jan 06, 2023
pix2pix in tensorflow.js

pix2pix in tensorflow.js This repo is moved to https://github.com/yining1023/pix2pix_tensorflowjs_lite See a live demo here: https://yining1023.github

Yining Shi 47 Oct 04, 2022
A robust pointcloud registration pipeline based on correlation.

PHASER: A Robust and Correspondence-Free Global Pointcloud Registration Ubuntu 18.04+ROS Melodic: Overview Pointcloud registration using correspondenc

ETHZ ASL 101 Dec 01, 2022
Simple and Distributed Machine Learning

Synapse Machine Learning SynapseML (previously MMLSpark) is an open source library to simplify the creation of scalable machine learning pipelines. Sy

Microsoft 3.9k Dec 30, 2022