oryol icon indicating copy to clipboard operation
oryol copied to clipboard

A small, portable and extensible C++ 3D coding framework

Please note that Oryol is currently not actively maintained and hasn't been for a long time, my focus is currently on the Sokol headers and (from time to time) on the Chips emulator stuff.

Oryol

A small, portable and extensible 3D coding framework written in C++:

  • simple Orthodox C++ coding style and APIs
  • extensible through external code modules living in git repositories
  • runs on OSX, Linux (incl RaspberryPi), Windows, iOS, Android, emscripten, from the same C++ source
  • renders through GL, GLES2, WebGL, Metal, D3D11 from same shader source
  • produces small executables (e.g. emscripten WebGL demos starting at around 100 Kbytes)
  • async data loading from web or disc

Build Status:

Platform Build Status
OSX + Linux (OpenGL) Build Status
Windows (OpenGL + D3D11) Build status

Live Demos:

  • Oryol Core Samples: http://floooh.github.io/oryol/
  • Oryol Extension Samples: http://floooh.github.io/oryol-samples/
  • KC85 emulator: http://floooh.github.io/virtualkc/

How to Build (Quick'n'Dirty):

You need: cmake, python and your platform's default C/C++ development environment.

> mkdir projects
> cd projects
> git clone --depth 5 https://github.com/floooh/oryol
> cd oryol
> ./fips build
> ./fips run Triangle

In case of problems or for more detailed build info (e.g. how to work with IDEs) see here: How to Build

Getting Started:

  • What's New (updated: 22-May-2017)
  • How to Build
  • Design Manifesto
  • 10,000ft View
  • Core Module
  • IO Module
  • Input Module
  • Gfx Module
  • Resource Module
  • HttpFS Module
  • LocalFS Module

Useful Blog Posts:

Extension Modules:

  • Skeletal Animation System: https://github.com/floooh/oryol-animation
  • Dear Imgui integration: https://github.com/floooh/oryol-imgui
  • Nuklear UI integration: https://github.com/floooh/oryol-nuklear
  • TurboBadger UI integration: https://github.com/floooh/oryol-tbui
  • OpenAL based sound module: https://github.com/floooh/oryol-sound
  • SoLoud portable audio library: https://github.com/floooh/fips-soloud

See the Oryol Extension Sample webpage for more interesting 3rd-party library integrations.

Tools etc.:

  • Oryol Asset Tools (WIP): https://github.com/floooh/oryol-tools
  • Oryol Fileformat Definitions: https://github.com/floooh/oryol-fileformats

Standalone App Demo:

A simple standalone app using Oryol: https://github.com/floooh/oryol-test-app

Videos

Please note that these videos use older versions of the Gfx module, details have changed (and will continue to change at least until the Vulkan and DX12 renderer backends have been implemented).

Enjoy!