prism
Version, currently 0.11.113 versions
- 0.11.1latestJul 5, 2020
- 0.11.0not indexedSep 15, 2023
- 0.10.0not indexedSep 15, 2023
- 0.9.0not indexedSep 15, 2023
- 0.8.0not indexedSep 15, 2023
- 0.7.0not indexedSep 15, 2023
- 0.6.0not indexedSep 15, 2023
- 0.5.1not indexedSep 15, 2023
- 0.5.0not indexedSep 15, 2023
- 0.4.0not indexedSep 15, 2023
- 0.3.0not indexedSep 15, 2023
- 0.2.1not indexedSep 15, 2023
- 0.2.0not indexedSep 15, 2023
github.com/da1nerd/prism
A 3D game engine.
Installation
# Add this to your shard.yml
dependencies:
prism:
github: da1nerd/prism
version: ~> 0.11.1Then run:
shards installshard.yml
- Crystal
0.34.0- License
- MIT
- Author
- Joel Lonbeck
- Target
examplefrom example/example.cr
Dependencies
Runtime Dependencies
- crash*github: neutrinog/crash
- lib_gl*github: calebuharrison/LibGL, branch: master
- matrix*github: Exilor/matrix, branch: master
- crystglfw*github: neutrinog/CrystGLFW, branch: support-crystal-0.31
- annotation*github: grottopress/annotation.cr
- stumpy_png~> 4.5.2github: stumpycr/stumpy_png
- render_loop*github: neutrinog/render_loop
- baked_file_system0.9.8github: schovi/baked_file_system
README
Prism
This is a stable, though not completely baked, 3D game engine. Documentation is a little sparse right now, but hopefully the example linked below will help. Disclaimer: I barely know anything about game development much less game engine development. This has been a learn-as-i-go project. If you have ideas or suggestions I would love it if you opened an issue.
Goals
- Defaults most things should "just work" with sane defaults.
- Pure other than a few system level dependencies, this should be 100% pure crystal code. Wrapping an existing project is cheating.
- Simple try to avoid obtuse graphics language, or at least document it very well so noobs can understand what's going on.
- Extensible you can extend/replace/add engines to the core with ease.
Demo
NOTE: this was recorded at 5fps, but runs at 60fps.

You can find code for this demo at https://github.com/neutrinog/tutorial-game
Installation
Add this to your application's shard.yml:
dependencies:
prism:
github: neutrinog/prism
Install GLFW on your system
# on linux
sudo apt-get install libglfw3-dev
# on macOS
brew install glfw3
Install OpenGL
# on linux
sudo apt install mesa-common-dev
# on mac
# TODO: give install instructions
Usage
require "prism"
class Game < Prism::GameEngine
def init
# Cube
# TODO: draw a box to look at
# Sun light
sun = Prism::Entity.new
sun_color = Prism::Maths::Vector3f.new(0.2, 0.2, 0.2)
sun.add Prism::PointLight.new(sun_color)
sun.transform.move_to(0, 10000, -7000)
add_entity sun
# Camera
add_entity Prism::GhostCamera.new
end
end
Prism::Context.run("Hello World", Game.new)
Contributing
- Fork it (https://github.com/neutrinog/prism/fork)
- Create your feature branch (
git checkout -b my-new-feature) - Commit your changes (
git commit -am 'Add some feature') - Push to the branch (
git push origin my-new-feature) - Create a new Pull Request
Contributors
- neutrinog Joel Lonbeck - creator, maintainer
Special Thanks
This project was largely inspired by "The Benny Box" and his 3D Game Engine Tutorial. Thanks for all the good tutorials Benny!
Documentation
Built from the current release. The first visit to a release nobody has asked for starts its build.
Links
This release
- Version
0.11.1- Tagged
- Jul 5, 2020
- Commit
dded2ef46ce6- Crystal
0.34.0- Indexed
- yes
Dependents
Repository
github.com/da1nerd/prism
Metadata
- Created
- Aug 12, 2026
- Updated
- Sep 24, 2026
- Synced
- Sep 23, 2026
- Versions
- 13