{"id":17204040,"url":"https://github.com/ivanceras/balisong","last_synced_at":"2025-04-13T21:20:44.314Z","repository":{"id":28440586,"uuid":"31955798","full_name":"ivanceras/balisong","owner":"ivanceras","description":"Voxel renderer using raytracing, written in rust","archived":false,"fork":false,"pushed_at":"2019-03-08T06:15:15.000Z","size":68467,"stargazers_count":45,"open_issues_count":1,"forks_count":1,"subscribers_count":8,"default_branch":"master","last_synced_at":"2025-04-11T16:23:38.181Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ivanceras.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-03-10T12:20:49.000Z","updated_at":"2024-04-27T23:36:25.000Z","dependencies_parsed_at":"2022-08-02T12:11:09.553Z","dependency_job_id":null,"html_url":"https://github.com/ivanceras/balisong","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ivanceras%2Fbalisong","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ivanceras%2Fbalisong/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ivanceras%2Fbalisong/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ivanceras%2Fbalisong/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ivanceras","download_url":"https://codeload.github.com/ivanceras/balisong/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248438775,"owners_count":21103470,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-15T02:20:22.295Z","updated_at":"2025-04-13T21:20:44.292Z","avatar_url":"https://github.com/ivanceras.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Balisong\n\nA voxel based raytracer written in rust.\nWell, raycaster for now (no light bounce yet).\n\n\n## Screenshots\n\n#### Here is a golden statue\n\n![](https://raw.githubusercontent.com/ivanceras/balisong/master/screenshots/complex_golden_smoothen.png)\n\n```\ncargo run --release --example render_complex10\n\n```\n\nthen look at `./renders` directory. File output is in `.ppm` format which should be viewable in linux\n\nRendering took ~400 seconds on Intel Core i7, that is excluding the calculation and smoothing of normals.\n\n\nThe a voxel grid which is capable of holding (2^10)^3 = 1,073,741,824 voxels.\nOf course, I stripped out the empty voxels and the completely occluded voxels\nThe gold color in hardcoded in the raytracer. So, everything will be golden.\n\nFully solid statue has 26,637,838 voxels (includes the occluded voxels, which is 2% of the total maximum grid space). Consumes a whooping 6.4 GiB of memory\n\nThe final carved out statue contains 2,102,146 surface voxels which is 8% of the total solid statue and 0.20% of the maximum space grid space.\nIt consumed only 700 MiB of memory which includes the calculated normals for each surface voxel.\n\n\n# Features\n* No other library dependency except for standard rust library and extension library such as time and regex\n* Normals are calculated based on voxel structure\n* Written in rust :)\n\n\n# Progress\nDaily Progress is logged in [Progress.md](https://github.com/ivanceras/balisong/blob/master/Progress.md)\n\n# TODO's\nDaily Todo's is logged in [TODO.md](https://github.com/ivanceras/balisong/blob/master/TODO.md)\n\t\n\n# Roadmap\n* Make OpenCL graphics rendering pipeline. (https://github.com/luqmana/rust-opencl)\n\t* Why?, Because current rendering pipeline assumes the use of triangles, and rasterization\n\t* This project uses voxels and raytracing\n\t\t\n* Lattice matrix transformation\n* Particle System - uses grid voxel, rather than octree \n* Physics addition (https://github.com/sebcrozet/nphysics), voxel collision should be easy\n\n\n## Previous discussion on reddit\nhttp://www.reddit.com/r/programming/comments/2xnlv7/3d_voxel_renderer_using_raytracing_written_in_rust/\n\n\n\n# Contributing\n* This project is in need of an experienced OpenCL programmer to convert the rendering part of the code to OpenCL to make it work on the GPU. There is a lot of recursive calls though, but I will make an iterative version of those.\n* If you are interested in making this a full blown renderer + physics engine, fork this project.\n\n\t\n# For Updates\nFollow me on twitter: [@ivanceras](https://twitter.com/ivanceras)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fivanceras%2Fbalisong","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fivanceras%2Fbalisong","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fivanceras%2Fbalisong/lists"}