# CS-Manim
Video animations with Manim to explain technical concepts related to computer science.
## Description
CS-Manim is a Python library that provides reusable objects and styles to create educational animations with Manim, specially designed to explain computer science and programming concepts.
## Installation
```bash
pip install cs-manim
```
## Usage
```python
from manim import *
from cs_manim import Computer, Server, MobilePhone
from cs_manim import CLIENT_COLOR, SERVER_COLOR, FONT_NAME
class MyScene(Scene):
def construct(self):
# Create objects for your animations
computer = Computer("PC Client")
server = Server("API Server")
mobile = MobilePhone("Smartphone")
# Position and animate
computer.shift(LEFT * 3)
server.shift(RIGHT * 3)
self.play(Create(computer))
self.play(Create(server))
self.play(Create(api_call))
```
## Features
- **Reusable objects**: Computers, servers, mobile phones, HTTP calls
- **Consistent styles**: Predefined colors and fonts
- **Manim compatible**: Uses Manim 0.19.0+
- **Easy to use**: Simple import and intuitive API
## Available Objects
### PortableComputer
```python
computer = PortableComputer(name="My PC", color=CLIENT_COLOR)
```
### Server
```python
server = Server(name="My Server", color=SERVER_COLOR)
```
### MobilePhone
```python
mobile = MobilePhone(name="My Phone", color=PURPLE)
```
### AndroidLogo
```python
android = AndroidLogo(color=GREEN)
```
### AppleLogo
```python
apple = AppleLogo(color=WHITE)
```
### Database
```python
database = Database(name="My Database", color=BLUE)
```
### Cloud
```python
cloud = Cloud(name="My Cloud", color=GRAY)
```
### Monitor
```python
monitor = Monitor(name="My Monitor", color=BLACK)
```
### TestTube
```python
test_tube = TestTube(color=RED)
```
## Development
### Environment Setup
```bash
# Clone the repository
git clone https://github.com/PierreOlivierBrillant/cs-manim.git
cd cs-manim
# Create a virtual environment
python -m venv .venv
source .venv/bin/activate # Linux/Mac
# or .venv\Scripts\activate # Windows
# Install in development mode
pip install -e .[dev]
```
### Tests
```bash
# Run tests
pytest
# With coverage
pytest --cov=cs_manim
```
### Formatting and linting
```bash
# Format the code
black cs_manim tests examples
# Check style
ruff cs_manim tests examples
# Check types
mypy cs_manim
```
### Package building
```bash
# Build the package
python -m build
# Check the package
twine check dist/*
```
## Publishing
### Prerequisites for publishing
1. PyPI account (https://pypi.org/)
2. PyPI API token configured
3. All checks passed
### Publishing steps
1. **Update version** in `pyproject.toml`
2. **Update CHANGELOG.md**
3. **Create git tag**: `git tag v0.1.0`
4. **Push the tag**: `git push origin v0.1.0`
5. **Create release on GitHub**
Publishing to PyPI happens automatically via GitHub Actions when creating a release.
### Manual publishing
```bash
# Build the package
python -m build
# Publish to PyPI
twine upload dist/*
```
## Examples
See the `examples/` folder for usage examples.
## Contributing
See [CONTRIBUTING.md](CONTRIBUTING.md) for contribution instructions.
## Dependencies
- Python >= 3.10
- Manim >= 0.19.0
- Pillow >= 11.0.0
- NumPy >= 1.24.0
- SciPy >= 1.10.0
## License
MIT License - see the [LICENSE](LICENSE) file for details.
## Author
Pierre-Olivier Brillant - pierreolivierbrillant@gmail.com
## Links
- [GitHub](https://github.com/PierreOlivierBrillant/cs-manim)
- [PyPI](https://pypi.org/project/cs-manim/)
- [Manim Documentation](https://docs.manim.community/)
Raw data
{
"_id": null,
"home_page": null,
"name": "cs-manim",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.10",
"maintainer_email": "Pierre-Olivier Brillant <pierreolivierbrillant@gmail.com>",
"keywords": "manim, animation, education, computer-science, visualization, teaching",
"author": null,
"author_email": "Pierre-Olivier Brillant <pierreolivierbrillant@gmail.com>",
"download_url": "https://files.pythonhosted.org/packages/ff/5d/2f984dd54821e1e9d9a19bfd847bf247a3db088393b4c6b8748d23b34689/cs_manim-0.1.4.tar.gz",
"platform": null,
"description": "# CS-Manim\n\nVideo animations with Manim to explain technical concepts related to computer science.\n\n## Description\n\nCS-Manim is a Python library that provides reusable objects and styles to create educational animations with Manim, specially designed to explain computer science and programming concepts.\n\n## Installation\n\n```bash\npip install cs-manim\n```\n\n## Usage\n\n```python\nfrom manim import *\nfrom cs_manim import Computer, Server, MobilePhone\nfrom cs_manim import CLIENT_COLOR, SERVER_COLOR, FONT_NAME\n\nclass MyScene(Scene):\n def construct(self):\n # Create objects for your animations\n computer = Computer(\"PC Client\")\n server = Server(\"API Server\")\n mobile = MobilePhone(\"Smartphone\")\n\n # Position and animate\n computer.shift(LEFT * 3)\n server.shift(RIGHT * 3)\n\n self.play(Create(computer))\n self.play(Create(server))\n self.play(Create(api_call))\n```\n\n## Features\n\n- **Reusable objects**: Computers, servers, mobile phones, HTTP calls\n- **Consistent styles**: Predefined colors and fonts\n- **Manim compatible**: Uses Manim 0.19.0+\n- **Easy to use**: Simple import and intuitive API\n\n## Available Objects\n\n### PortableComputer\n\n```python\ncomputer = PortableComputer(name=\"My PC\", color=CLIENT_COLOR)\n```\n\n### Server\n\n```python\nserver = Server(name=\"My Server\", color=SERVER_COLOR)\n```\n\n### MobilePhone\n\n```python\nmobile = MobilePhone(name=\"My Phone\", color=PURPLE)\n```\n\n### AndroidLogo\n\n```python\nandroid = AndroidLogo(color=GREEN)\n```\n\n### AppleLogo\n\n```python\napple = AppleLogo(color=WHITE)\n```\n\n### Database\n\n```python\ndatabase = Database(name=\"My Database\", color=BLUE)\n```\n\n### Cloud\n\n```python\ncloud = Cloud(name=\"My Cloud\", color=GRAY)\n```\n\n### Monitor\n\n```python\nmonitor = Monitor(name=\"My Monitor\", color=BLACK)\n```\n\n### TestTube\n\n```python\ntest_tube = TestTube(color=RED)\n```\n\n## Development\n\n### Environment Setup\n\n```bash\n# Clone the repository\ngit clone https://github.com/PierreOlivierBrillant/cs-manim.git\ncd cs-manim\n\n# Create a virtual environment\npython -m venv .venv\nsource .venv/bin/activate # Linux/Mac\n# or .venv\\Scripts\\activate # Windows\n\n# Install in development mode\npip install -e .[dev]\n```\n\n### Tests\n\n```bash\n# Run tests\npytest\n\n# With coverage\npytest --cov=cs_manim\n```\n\n### Formatting and linting\n\n```bash\n# Format the code\nblack cs_manim tests examples\n\n# Check style\nruff cs_manim tests examples\n\n# Check types\nmypy cs_manim\n```\n\n### Package building\n\n```bash\n# Build the package\npython -m build\n\n# Check the package\ntwine check dist/*\n```\n\n## Publishing\n\n### Prerequisites for publishing\n\n1. PyPI account (https://pypi.org/)\n2. PyPI API token configured\n3. All checks passed\n\n### Publishing steps\n\n1. **Update version** in `pyproject.toml`\n2. **Update CHANGELOG.md**\n3. **Create git tag**: `git tag v0.1.0`\n4. **Push the tag**: `git push origin v0.1.0`\n5. **Create release on GitHub**\n\nPublishing to PyPI happens automatically via GitHub Actions when creating a release.\n\n### Manual publishing\n\n```bash\n# Build the package\npython -m build\n\n# Publish to PyPI\ntwine upload dist/*\n```\n\n## Examples\n\nSee the `examples/` folder for usage examples.\n\n## Contributing\n\nSee [CONTRIBUTING.md](CONTRIBUTING.md) for contribution instructions.\n\n## Dependencies\n\n- Python >= 3.10\n- Manim >= 0.19.0\n- Pillow >= 11.0.0\n- NumPy >= 1.24.0\n- SciPy >= 1.10.0\n\n## License\n\nMIT License - see the [LICENSE](LICENSE) file for details.\n\n## Author\n\nPierre-Olivier Brillant - pierreolivierbrillant@gmail.com\n\n## Links\n\n- [GitHub](https://github.com/PierreOlivierBrillant/cs-manim)\n- [PyPI](https://pypi.org/project/cs-manim/)\n- [Manim Documentation](https://docs.manim.community/)\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Video animations with Manim to explain technical concepts related to computer science",
"version": "0.1.4",
"project_urls": {
"Bug Tracker": "https://github.com/PierreOlivierBrillant/cs-manim/issues",
"Homepage": "https://github.com/PierreOlivierBrillant/cs-manim",
"Repository": "https://github.com/PierreOlivierBrillant/cs-manim"
},
"split_keywords": [
"manim",
" animation",
" education",
" computer-science",
" visualization",
" teaching"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "b75b494aca0dc5891bac7b5fc521ad068bf3de4fefe5ebcc34ceaac604a899a7",
"md5": "f5416167564fd9c40f3e8f61327b614f",
"sha256": "fa9504d9c31aa4f7daa98acd1452d1d902c713b4fc754ddf5820037835f00857"
},
"downloads": -1,
"filename": "cs_manim-0.1.4-py3-none-any.whl",
"has_sig": false,
"md5_digest": "f5416167564fd9c40f3e8f61327b614f",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.10",
"size": 10758,
"upload_time": "2025-07-21T23:37:41",
"upload_time_iso_8601": "2025-07-21T23:37:41.641183Z",
"url": "https://files.pythonhosted.org/packages/b7/5b/494aca0dc5891bac7b5fc521ad068bf3de4fefe5ebcc34ceaac604a899a7/cs_manim-0.1.4-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "ff5d2f984dd54821e1e9d9a19bfd847bf247a3db088393b4c6b8748d23b34689",
"md5": "3a92fdab74d0c58bff39d0ad8598fa7a",
"sha256": "f2e370f4000e897be2f4e9085ec45238a2539430f9aef7d2174db4e99b11694c"
},
"downloads": -1,
"filename": "cs_manim-0.1.4.tar.gz",
"has_sig": false,
"md5_digest": "3a92fdab74d0c58bff39d0ad8598fa7a",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.10",
"size": 11038,
"upload_time": "2025-07-21T23:37:42",
"upload_time_iso_8601": "2025-07-21T23:37:42.334999Z",
"url": "https://files.pythonhosted.org/packages/ff/5d/2f984dd54821e1e9d9a19bfd847bf247a3db088393b4c6b8748d23b34689/cs_manim-0.1.4.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-07-21 23:37:42",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "PierreOlivierBrillant",
"github_project": "cs-manim",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "cs-manim"
}