mirror of
https://github.com/jeertmans/manim-slides.git
synced 2025-07-01 20:43:14 +08:00
chore(misc): JOSE paper (#144)
* chore(misc): JOSE paper * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * fix(ci): update path * fix(ci): tab error * fix(ci): path to paper * fix(paper): updates * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * fix(paper): typos --------- Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
This commit is contained in:
33
.github/workflows/draft-pdf.yml
vendored
Normal file
33
.github/workflows/draft-pdf.yml
vendored
Normal file
@ -0,0 +1,33 @@
|
||||
# Simple workflow for deploying static content to GitHub Pages
|
||||
name: Create JOSE Paper
|
||||
|
||||
on:
|
||||
# Runs on pushes targeting the default branch
|
||||
push:
|
||||
paths:
|
||||
- paper/*
|
||||
|
||||
# Allows you to run this workflow manually from the Actions tab
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
paper:
|
||||
runs-on: ubuntu-latest
|
||||
name: Paper Draft
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v3
|
||||
- name: Build draft PDF
|
||||
uses: openjournals/openjournals-draft-action@master
|
||||
with:
|
||||
journal: jose
|
||||
# This should be the path to the paper within your repo.
|
||||
paper-path: paper/paper.md
|
||||
- name: Upload
|
||||
uses: actions/upload-artifact@v1
|
||||
with:
|
||||
name: paper
|
||||
# This is the output path where Pandoc will write the compiled
|
||||
# PDF. Note, this should be the same directory as the input
|
||||
# paper.md
|
||||
path: paper/paper.pdf
|
6
.gitignore
vendored
6
.gitignore
vendored
@ -35,3 +35,9 @@ docs/source/_static/basic_example.html
|
||||
docs/source/_static/three_d_example.html
|
||||
|
||||
docs/source/_static/three_d_example_assets/
|
||||
|
||||
paper/media/
|
||||
|
||||
*.jats
|
||||
|
||||
paper/paper.pdf
|
||||
|
BIN
paper/docs.png
Normal file
BIN
paper/docs.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 4.3 MiB |
53
paper/paper.bib
Normal file
53
paper/paper.bib
Normal file
@ -0,0 +1,53 @@
|
||||
@online{manim-announcement,
|
||||
author = {Grant Sanderson},
|
||||
title = {{Q}\&{A} with {G}rant {S}anderson (3blue1brown)},
|
||||
year = {2018},
|
||||
organization = {YouTube},
|
||||
url = {https://www.youtube.com/watch?v=Qe6o9j4IjTo\&ab_channel=3Blue1Brown}
|
||||
}
|
||||
|
||||
@misc{revealjs,
|
||||
author = {Hakim El Hattab},
|
||||
title = {The HTML Presentation Framework},
|
||||
year = {2022},
|
||||
publisher = {GitHub},
|
||||
journal = {GitHub repository},
|
||||
url = {https://github.com/hakimel/reveal.js}
|
||||
}
|
||||
|
||||
@misc{manim-presentation,
|
||||
author = {Federico Galatolo},
|
||||
title = {Tool for live presentations using manim},
|
||||
year = {2021},
|
||||
publisher = {GitHub},
|
||||
journal = {GitHub repository},
|
||||
url = {https://github.com/galatolofederico/manim-presentation}
|
||||
}
|
||||
|
||||
@misc{manimgl,
|
||||
author = {Grant Sanderson},
|
||||
title = {Animation engine for explanatory math videos},
|
||||
year = {2022},
|
||||
publisher = {GitHub},
|
||||
journal = {GitHub repository},
|
||||
url = {https://github.com/3b1b/manim}
|
||||
}
|
||||
|
||||
@misc{manim-editor,
|
||||
author = {Christopher Besch},
|
||||
title = {Web Presenter for Mathematical Animations using Manim},
|
||||
year = {2022},
|
||||
publisher = {GitHub},
|
||||
journal = {GitHub repository},
|
||||
url = {https://github.com/ManimCommunity/manim_editor}
|
||||
}
|
||||
|
||||
@software{manimce,
|
||||
author = {{The Manim Community Developers}},
|
||||
license = {MIT},
|
||||
month = {12},
|
||||
title = {{Manim – Mathematical Animation Framework}},
|
||||
url = {https://www.manim.community/},
|
||||
version = {v0.17.2},
|
||||
year = {2022}
|
||||
}
|
125
paper/paper.md
Normal file
125
paper/paper.md
Normal file
@ -0,0 +1,125 @@
|
||||
---
|
||||
title: 'Manim Slides: A Python package for presenting Manim content anywhere'
|
||||
tags:
|
||||
- Python
|
||||
- manim
|
||||
- animations
|
||||
- teaching
|
||||
- conference presentations
|
||||
- tool
|
||||
authors:
|
||||
- name: Jérome Eertmans
|
||||
orcid: 0000-0002-5579-5360
|
||||
affiliation: 1
|
||||
affiliations:
|
||||
- name: ICTEAM, UCLouvain, Belgium
|
||||
index: 1
|
||||
date: 2 March 2023
|
||||
bibliography: paper.bib
|
||||
---
|
||||
|
||||
# Summary
|
||||
|
||||
Manim Slides is a Python package that makes presenting Manim animations
|
||||
straightforward. With minimal changes required to pre-existing code, one can
|
||||
slide through animations in a *PowerPoint-like* manner, or share its slides
|
||||
*online* using ReavealJS' power.
|
||||
|
||||
# Introduction
|
||||
|
||||
Presenting educational content has always been a difficult task, especially
|
||||
when it uses temporal or iterative concepts. During the last decades, the
|
||||
presence of computers in classrooms for educational purposes has increased
|
||||
enormously, allowing teachers to show animated or interactive content.
|
||||
|
||||
With the democratization of YouTube, many people have decided to use this
|
||||
platform to share educational content. Among these people, Grant Sanderson, a
|
||||
YouTuber presenting videos on the theme of mathematics, quickly became known
|
||||
for his original and quality animations. In 2018, Grant announced in a video
|
||||
that he creates his animations using a self-developed Python tool called Manim
|
||||
[@manim-announcement]. In 2019, he made the Manim source code public [@manimgl],
|
||||
so anyone can use his tool. Very quickly, the community came together and, in
|
||||
2020, created a "fork" of the original GitHub repository [@manimce], in order to
|
||||
create a more accessible and better documented version of this tool. Since then,
|
||||
the two versions are differentiated by using ManimGL for Grant Sanderson's
|
||||
version, as it uses OpenGL for rendering, and ManimCE for the community edition
|
||||
(CE).
|
||||
|
||||
Despite the many advantages of the Manim tool in terms of illustrating
|
||||
mathematical concepts, one cannot help but notice that most presentations,
|
||||
whether in the classroom or at a conference, are mainly done with PowerPoint
|
||||
or PDF slides. One of the many advantages of these formats, as opposed to videos
|
||||
created with Manim, is the ability to pause, rewind, etc., whenever you want.
|
||||
|
||||
To face this problem, in 2021, the manim-presentation tool was created
|
||||
[@manim-presentation]. This tool allows you to present Manim animations as you
|
||||
would present slides: with pauses, slide jumps, etc. However, this tool has
|
||||
evolved very little since its inception and does not work with ManimGL.
|
||||
|
||||
In 2022, Manim Slides has been created from manim-presentation, with the aim
|
||||
to make it a more complete tool, better documented, and usable on all platforms
|
||||
and with ManimCE or ManimGL. After almost a year of existence, Manim Slides has
|
||||
evolved a lot, has built a small community of contributors, and continues to
|
||||
provide new features on a regular basis.
|
||||
|
||||
# Easy to Use Commitment
|
||||
|
||||
Manim Slides is commited to be an easy-to-use tool, when minimal installation
|
||||
procedure and few modifications required. It can either be used locally with its
|
||||
graphical user interface (GUI), or shared via HTML thanks to the RevealJS
|
||||
Javascript package [@revealjs].
|
||||
|
||||
This work has a very similar syntax to Manim and offers a comprehensive
|
||||
documentation hosted on [GitHub pages](https://eertmans.be/manim-slides/), see
|
||||
\autoref{fig:docs}.
|
||||
|
||||

|
||||
|
||||
# Example usage
|
||||
|
||||
We have used manim-presentation for our presentation at the COST
|
||||
Interact, hosted in Lyon, 2022, and
|
||||
[available online](https://eertmans.be/research/cost-interact-presentation/).
|
||||
This experience highly motivated the development of Manim Slides, and our
|
||||
EuCAP 2023 presentation slides are already
|
||||
[available online](https://eertmans.be/research/eucap-presentation/), thanks
|
||||
to Manim Slides' HTML feature.
|
||||
|
||||
Also, one of our users created a short
|
||||
[video tutorial](https://www.youtube.com/watch?v=Oc9g89VzKsY&ab_channel=TheoremofBeethoven)
|
||||
and posted it on YouTube.
|
||||
|
||||
# Stability and releases
|
||||
|
||||
Manim Slides is continously tested on most recent Python versions, both ManimCE
|
||||
and ManimGL, and on all major platforms: **Ubuntu**, **macOS** and **Windows**. As of Manim
|
||||
Slide's exposed API begin very minimal, and the variaty of tests that are
|
||||
performed, this tool can be considered stable over time.
|
||||
|
||||
New releases are very frequent, as they mostly introduce enhancements or small
|
||||
documention fixes, and the command-line tool automatically notifies for new
|
||||
available updates. Therefore, regularly updating Manim Slides is highly
|
||||
recommended.
|
||||
|
||||
# Statement of Need
|
||||
|
||||
Similar tools to Manim Slides also exist, such as its predecessor,
|
||||
manim-presentation [@manim-presentation], or the web-based alternative, Manim
|
||||
Editor [@manim-editor], but none of them provide the documentation level nor the
|
||||
amount of features that Manim Slides strives to. This work makes the task of
|
||||
presenting Manim content in front of an audience much easier than before,
|
||||
allowing presenters to focus more on the content of their slides, rather than on
|
||||
how to actually present them efficiently.
|
||||
|
||||
# Acknowledgements
|
||||
|
||||
We acknowledge the work of [@manim-presentation] that paved the initial structure
|
||||
of Manim Slides with the `manim-presentation` Python package.
|
||||
|
||||
We also acknowledge Grant Sanderson for its termendous work on Manim, as well as
|
||||
well as the Manim Community contributors.
|
||||
|
||||
Finally, we also acknowledge contributions from the GitHub contributors on the
|
||||
Manim Slides repository.
|
||||
|
||||
# References
|
Reference in New Issue
Block a user