ManimCommunity / ManimCommunity/manim

OpenGL and rendered documentation

Open
#1,214 4 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

  • #1900 by @behackl — closed without merging
documentation question
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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.