Real-time ASCII 3D rendering engine
Project description
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.
Please direct questions to garrett@fairburn.dev.
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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file rendascii-1.0.0a3.tar.gz
.
File metadata
- Download URL: rendascii-1.0.0a3.tar.gz
- Upload date:
- Size: 12.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.1.3 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.8.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | aa6e83ee92f5ac77505ff049c5aca48819bfdb6b91ed72732fa939f63b76c01b |
|
MD5 | fa464f6577a1c319767599704403ffc9 |
|
BLAKE2b-256 | b55d277e58e0d5661d4b642a0b362b3693dae4a53eed1b86e864b6ba625fca4d |
File details
Details for the file rendascii-1.0.0a3-py3-none-any.whl
.
File metadata
- Download URL: rendascii-1.0.0a3-py3-none-any.whl
- Upload date:
- Size: 14.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.1.3 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.8.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2179650bf864d372d74afbdfd32bf918da79516c516a731cb6e806e43eee37cf |
|
MD5 | c5e2b90778139788a75070e959cd8fb0 |
|
BLAKE2b-256 | e59fc188607ce9880904f58d870f9c68fa219f175869d9ad3617734baae349aa |