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 rendascii@gmail.com.
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://bitbucket.org/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 Distributions
Hashes for rendascii-1.0.0a2.post2-py3.7.egg
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2b4c1067c1e5a7390bfddb294ebbb7098827f3a3d7302015e01bb638750c0856 |
|
MD5 | abce3fd67a1e4d49741816d9f7f25951 |
|
BLAKE2b-256 | ff1a0327656c14593ee55801245f183ac8146ea83e222d37a2a91bc968bc869b |
Hashes for rendascii-1.0.0a2.post2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 17094af3fe235d999caffa9ac970728f0241e7094d4a232a0a3a8fe0c3c32aed |
|
MD5 | fbd56e8abfc0d2a225202903c4a7ab2d |
|
BLAKE2b-256 | 0b59e831000c8d0c0c5a67f912522b687da0fc80e5998b6006f02d3f8c66baf8 |