ManimCommunity / ManimCommunity/manim
OpenGL and rendered documentation
Nobody has claimed this yet.
- #1900 by @behackl — closed without merging
- Dominant language
- Python
- Stars
- 40.9k
- Forks
- 3.1k
- Avg merge
- 3d 12h
- Merged PRs (30d)
- 25
Description
## The Problem
From looking at the docker image used by Readthedocs for building the documentation (https://github.com/readthedocs/readthedocs-docker-images/blob/master/Dockerfile) it seems like a bunch of requirements needed in order to run the OpenGL renderer are missing.
While we were able to find a workaround for ffmpeg (installing a python package which includes a prebuilt version of ffmpeg in its wheel), I am not so confident that we are able to do something similar here: installing system packages actually isn't supported by RTD.
This is a problem, as it means we won't be able to render our own video snippets for the documentation while building it as soon as we switch to OpenGL as the default renderer.
## Potential Solutions
I've thought about some different ways forwards, but right now I'm not sure that any of these are really easily doable.
- Remove rendered videos from the documentation. (Not great, big oof.)
- Host our own version of RTD which runs with a modified docker image. (Requires some space where it can be hosted + the corresponding devops work.)
- Build a webservice able to render manim snippets, make RTD use that service instead of rendering the videos locally. (We need some space to host the service, and I feel that would be more complicated to setup than hosting RTD.)
- Variation: use a GH action to render examples, then deploy them to some static webserver. Let RTD simply link to there. (Probably difficult to get it right, but otherwise a more or less clean solution. Also needs hosting space.)
- Try to find a workaround that allows installing system packages in RTD. (And hope they won't mind.)
- Switch from RTD to GH pages, try to setup everything via actions. (*Might* be possible, but having multiple different documentation versions might be not possible or might prove to be very difficult.)
Further ideas and suggestions are more than welcome.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reading the Read the Docs Dockerfile linked in the issue and the closed pull request #1900, then identify which OpenGL renderer requirements are unavailable in the hosted build. Done means the documentation build can render its video snippets with OpenGL, or a documented alternative reliably produces and serves them.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- docker, python
- Domain
- build-system, devops, documentation
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 20/100