1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
|
{
lib,
buildPythonPackage,
fetchFromGitHub,
texliveInfraOnly,
# build-system
setuptools,
# dependencies
addict,
appdirs,
colour,
diskcache,
fonttools,
ipython,
isosurfaces,
manimpango,
mapbox-earcut,
matplotlib,
moderngl,
moderngl-window,
numpy,
pillow,
pydub,
pygments,
pyopengl,
pyperclip,
pyyaml,
rich,
scipy,
screeninfo,
skia-pathops,
svgelements,
sympy,
tqdm,
typing-extensions,
validators,
# tests
ffmpeg,
}:
let
# This is a list of all LaTeX packages used by manimgl according to manimlib/tex_templates.yml
manim-tinytex = texliveInfraOnly.withPackages (
ps: with ps; [
# tinytex
amsfonts
amsmath
atbegshi
atveryend
auxhook
babel
bibtex
bigintcalc
bitset
booktabs
cm
dehyph
dvipdfmx
dvips
ec
epstopdf-pkg
etex
etexcmds
etoolbox
euenc
everyshi
fancyvrb
filehook
firstaid
float
fontspec
framed
geometry
gettitlestring
glyphlist
graphics
graphics-cfg
graphics-def
grffile
helvetic
hycolor
hyperref
hyph-utf8
iftex
inconsolata
infwarerr
intcalc
knuth-lib
kvdefinekeys
kvoptions
kvsetkeys
l3backend
l3kernel
l3packages
latex
latex-amsmath-dev
latex-bin
latex-fonts
latex-tools-dev
latexconfig
latexmk
letltxmacro
lm
lm-math
ltxcmds
lua-alt-getopt
luahbtex
lualatex-math
lualibs
luaotfload
luatex
mdwtools
metafont
mfware
natbib
pdfescape
pdftex
pdftexcmds
plain
psnfss
refcount
rerunfilecheck
stringenc
tex
tex-ini-files
times
tipa
tools
unicode-data
unicode-math
uniquecounter
url
xcolor
xetex
xetexconfig
xkeyval
xunicode
zapfding
# manim-latex
standalone
everysel
preview
doublestroke
setspace
rsfs
relsize
ragged2e
fundus-calligra
microtype
wasysym
physics
dvisvgm
jknapltx
wasy
cm-super
babel-english
gnu-freefont
mathastext
cbfonts-fd
]
);
in
buildPythonPackage {
pname = "manimgl";
pyproject = true;
version = "1.7.2";
# Using hash rev because the tarball for the tag v1.7.2 gives the source to 1.7.1
src = fetchFromGitHub {
owner = "3b1b";
repo = "manim";
rev = "0c69ab6a32d4193f03ba9a604278eb3ce9699518";
hash = "sha256-mh55R0uTuPz86+dJNlHcgJP1KWXoBYi2p8NUCnu4gEo=";
};
build-system = [
setuptools
];
dependencies = [
addict
appdirs
colour
diskcache
fonttools
ipython
isosurfaces
manimpango
mapbox-earcut
matplotlib
moderngl
moderngl-window
numpy
pillow
pydub
pygments
pyopengl
pyperclip
pyyaml
rich
setuptools
scipy
screeninfo
skia-pathops
svgelements
sympy
tqdm
typing-extensions
validators
];
makeWrapperArgs = [
"--prefix"
"PATH"
":"
(lib.makeBinPath [
ffmpeg
manim-tinytex
])
];
doCheck = false;
meta = {
description = "Animation engine for explanatory math videos";
longDescription = ''
Manim is an engine for precise programmatic animations, designed for creating
explanatory math videos, as seen in the videos of 3Blue1Brown on Youtube.
This is the original version that is maintained by Grant Sanderson which is
based on OpenGL.
'';
changelog = "https://3b1b.github.io/manim/development/changelog.html";
homepage = "https://github.com/3b1b/manim";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [
L0L1P0P
osbm
];
mainProgram = "manimgl";
};
}
|