44 # According to ManimCommunity documentation manim uses tex-packages packaged
45 # in a custom distribution called "manim-latex",
47 # https://community.chocolatey.org/packages/manim-latex#files
49 # which includes another cutom distribution called tinytex, for which the
50 # package list can be found at
52 # https://github.com/yihui/tinytex/blob/master/tools/pkgs-custom.txt
54 # these two combined add up to:
55 manim-tinytex = texliveInfraOnly.withPackages (
178 buildPythonPackage rec {
182 disabled = pythonOlder "3.9";
184 src = fetchFromGitHub {
185 owner = "ManimCommunity";
187 rev = "refs/tags/v${version}";
188 hash = "sha256-o+Wl3NMK6yopcsRVFtZuUE9c1GABa5d8rbQNHDJ4OiQ=";
191 nativeBuildInputs = [
203 patches = [ ./pytest-report-header.patch ];
206 substituteInPlace pyproject.toml \
207 --replace "--no-cov-on-fail --cov=manim --cov-report xml --cov-report term" ""
210 buildInputs = [ cairo ];
212 propagatedBuildInputs = [
252 nativeCheckInputs = [
259 # about 55 of ~600 tests failing mostly due to demand for display
260 disabledTests = import ./failing_tests.nix;
262 pythonImportsCheck = [ "manim" ];
265 description = "Animation engine for explanatory math videos - Community version";
267 Manim is an animation engine for explanatory math videos. It's used to
268 create precise animations programmatically, as seen in the videos of
269 3Blue1Brown on YouTube. This is the community maintained version of
272 homepage = "https://github.com/ManimCommunity/manim";
273 license = licenses.mit;