|Project Name||Stars||Downloads||Repos Using This||Packages Using This||Most Recent Commit||Total Releases||Latest Release||Open Issues||License||Language|
|Json||35,027||8||2 days ago||11||August 22, 2022||100||mit||C++|
|JSON for Modern C++|
|Rapidjson||13,056||3 days ago||657||other||C++|
|A fast JSON parser/generator for C++ with both SAX/DOM style API|
|Cjson||8,846||1||3 days ago||1||March 03, 2021||170||mit||C|
|Ultralightweight JSON parser in ANSI C|
|Poco||7,063||1||5 days ago||6||August 09, 2022||267||other||C|
|The POCO C++ Libraries are powerful cross-platform C++ libraries for building network- and internet-based applications that run on desktop, server, mobile, IoT, and embedded systems.|
|Json C||2,648||15||2 months ago||1||February 27, 2018||33||other||C|
|https://github.com/json-c/json-c is the official code repository for json-c. See the wiki for release tarballs for download. API docs at http://json-c.github.io/json-c/|
|Widelands||1,771||8 hours ago||426||gpl-2.0||C++|
|Widelands is a free, open source real-time strategy game with singleplayer campaigns and a multiplayer mode. The game was inspired by Settlers II™ (© Bluebyte) but has significantly more variety and depth to it.|
|Facil.io||1,697||3 months ago||24||mit||C|
|Your high performance web application C framework|
|C Ray||680||7 days ago||17||mit||C|
|c-ray is a small, simple path tracer written in C|
|Json Schema Validator||386||12 days ago||1||May 17, 2021||27||other||C++|
|JSON schema validator for JSON for Modern C++|
|Libyang||318||5 days ago||20||bsd-3-clause||C|
|YANG data modeling language library|
(1000 samples, 1920x1080, 512 max bounces, 26min, scene by Scott Graham)
(256 samples, 2560x1440, 12 max bounces, 9min 37s, scene by MaTTeSr)
(512 samples, 2560x1600, 30 max bounces, 8min)
C-ray is a research oriented, hackable, offline CPU rendering engine built for learning. The source code is intended to be readable wherever possible, so feel free to explore and perhaps even expand upon the current functionality. See the contributing section in the wiki for more details.
C-ray currently has:
The default integrator supports:
Things I'm looking to implement:
C-ray has been verified to work on the following architectures
Please see the Wiki for details on how to use the JSON scene interface.
All other dependencies are included as source
macOS: Either follow these instructions, or the instructions for Linux below. Both work fine.
C-Rayin top left, make sure 'Use custom working directory' is ticked and set it to the root directory of this project.
Argumentstab, and add by clicking
+. Type in
./input/scene.json, then click close
cmake ., or optionally
cmake . -DNO_SDL2=Trueto disable SDL2.
maketo build the project
bin/c-ray input/scene.json(Making sure the working dir is the root directory). You can also pipe files into
C-rayand it will read from there. This is useful for scripts that invoke
cat input/scene.json | bin/c-rayNote: Reading the json from
stdinassumes that the asset path is
./, can be specified with
Developer Command Prompt for VS 2019, navigate to where you cloned c-ray and set path to SDL2DIR (where you extracted the files to, should have a few folders like 'include' and 'lib'):
cmake -G "Visual Studio 16 2019" .
msbuild c-ray.sln /p:Configuration=Release
type input\scene.json | bin\Release\c-ray.exe
All the .json files in
input/ are test scenes provided with c-ray, assets for those scenes are (mostly) bundled with the repository as well.
If you make a cool scene and have Python3 installed, you can bundle up the scene into a portable .zip file using the
On macOS, use
homebrew to install SDL.
brew install sdl2
On Windows, download from
On Linux using APT, run
sudo apt install libsdl2-dev
You can run the integrated test suite by invoking the test script like this:
This will compile C-ray with the correct flags, and then run each test individually in separate processes. If you want to run them in a shared process, do
In either case, you will get a log of all the tests, and their status.
3rd party libraries included in this project
lodePNG PNG compression library: http://lodev.org/lodepng/
stb_image.h by Sean Barrett: https://github.com/nothings/stb/blob/master/stb\_image.h
SDL2: https://www.libsdl.org/index.php (Optional)
JSON parsing library: DaveGamble/cJSON
PCG random number generator: http://www.pcg-random.org
Please file an issue detailing any improvements you're planning on making. I openly welcome contributions!
You can also ping me on Discord: