Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/foxbud/rendascii
ASCII 3D rendering engine
https://github.com/foxbud/rendascii
3d-rendering-engine ascii-graphics pure-python python3 realtime
Last synced: 2 days ago
JSON representation
ASCII 3D rendering engine
- Host: GitHub
- URL: https://github.com/foxbud/rendascii
- Owner: Foxbud
- License: mit
- Created: 2019-08-31T00:18:57.000Z (about 5 years ago)
- Default Branch: master
- Last Pushed: 2020-05-29T18:03:37.000Z (over 4 years ago)
- Last Synced: 2024-10-28T16:59:38.485Z (17 days ago)
- Topics: 3d-rendering-engine, ascii-graphics, pure-python, python3, realtime
- Language: Python
- Homepage:
- Size: 104 KB
- Stars: 74
- Watchers: 4
- Forks: 5
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Awesome Lists containing this project
README
# RendASCII
RendASCII is a real-time, z-buffering based 3D rendering engine written from scratch in and for Python 3. Unlike traditional real-time rendering engines, RendASCII renders frames as printable strings using ASCII characters for pixels. RendASCII is open source under the MIT license.
[Project Homepage](https://github.com/Foxbud/rendascii)
[Project Documentation](https://github.com/Foxbud/rendascii/wiki)
Please direct questions to **[email protected]**.
## Features
* No external dependencies; uses just the Python standard library.
* Multiprocess based rendering.
* Optional Cython based accelerator extension modules.
* Load and render 3D models from Wavefront object and material files (\*.obj and \*.mtl, respectively).
* Load and render 2D sprites from ASCII based Portable PixMap files (\*.ppm).
* Render the same or different scene(s) using multiple virtual cameras.
* ASCII overlays for displaying fixed graphics and/or information.
* Map sprite and material colors to ASCII characters using JSON colormaps.
* Transform models, sprites, and virtual cameras using arbitrary homogeneous transformation matrices.
* Utility for easily constructing complex transformation matrices with scaling, translations, and rotations.
* Utility for managing frame-rate and calculating delta time.## Installation
### Using Pip
`# pip3 install rendascii` - download and install pure Python distribution.
`# pip3 install --no-binary rendascii rendascii` - download source distribution, build accelerator extension modules, and install resulting binary distribution.
### Manual
`$ git clone https://github.com/Foxbud/rendascii.git` - clone repository source.
`$ cd rendascii` - change working directory to cloned source.
`# python3 -m setup install` - build accelerator extension modules and install resulting binary distribution.
`# PURE_PY_DIST=true python3 -m setup install` - build and install pure Python distribution.