{"id":23105049,"url":"https://github.com/shamazmazum/voxvision","last_synced_at":"2025-08-16T16:32:26.326Z","repository":{"id":10982795,"uuid":"13301637","full_name":"shamazmazum/voxvision","owner":"shamazmazum","description":"My voxel library implemented in C","archived":false,"fork":false,"pushed_at":"2022-08-05T13:16:42.000Z","size":34125,"stargazers_count":4,"open_issues_count":0,"forks_count":1,"subscribers_count":4,"default_branch":"master","last_synced_at":"2023-03-24T05:09:11.622Z","etag":null,"topics":["lua","sandbox","voxel","voxel-engine"],"latest_commit_sha":null,"homepage":null,"language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-2-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/shamazmazum.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":"2013-10-03T15:14:39.000Z","updated_at":"2023-02-15T08:00:51.000Z","dependencies_parsed_at":"2022-09-02T01:20:32.067Z","dependency_job_id":null,"html_url":"https://github.com/shamazmazum/voxvision","commit_stats":null,"previous_names":[],"tags_count":5,"template":null,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shamazmazum%2Fvoxvision","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shamazmazum%2Fvoxvision/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shamazmazum%2Fvoxvision/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shamazmazum%2Fvoxvision/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/shamazmazum","download_url":"https://codeload.github.com/shamazmazum/voxvision/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":230044784,"owners_count":18164220,"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":["lua","sandbox","voxel","voxel-engine"],"created_at":"2024-12-17T00:37:33.247Z","updated_at":"2024-12-17T00:37:33.811Z","avatar_url":"https://github.com/shamazmazum.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"Voxvision\n=========\n![CI](https://github.com/shamazmazum/voxvision/workflows/CI/badge.svg)\n\nWhat is Voxvision?\n-----------------\n**Voxvision** is a library (few of them to be accurate) for creating and\noperating on voxel octrees and also for visualising sets of voxels. It also\ncontains a demo application which shows functionality of these libraries.\n\nWhat is a voxel?\n----------------\nA voxel is a small cube in space. Its coordinates are given in a Cartesian\ncoordinate system and its faces are parallel to axes of that coordinate\nsystem. This libary limitation is that all voxels have the same size.\n\nWhat can it do?\n---------------\nThe first library, *voxtrees*, is not very feature-rich for now. It can\nconstruct voxel octrees and perform two types of search in octrees, which I\nthink are of the great importance. The first one checks if an arbitrary ray\nhits any voxel in the tree. The second one checks if an arbitrary ball\nintersects with any voxel. These checks are performed much faster than a naïve\nO(n) voxel-by-voxel search.\n\nThe second library, *voxrnd*, is a SDL-based renderer of voxel datasets with 6\ndegrees of freedom, collision detection and multicore parallel processing.\n\nAnd the third library, *voxengine* manages the first two, opening windows,\nloading data etc. and provides lua scripting with which you can describe your\nscene, control camera, do simple keyboard handling etc.\n\nIs there any API documentation?\n-------------------------------\nYou can try to execute `make doc` from building directory (see below) to\ngenerate an API documentation. But API changes too fast and unpredictable, so no\nguarantees. Also this documentation contains a basic tutorial for these\nlibraries.\n\nIf you do not want to install doxygen, you can just visit\n[voxvision](http://shamazmazum.github.io/voxvision) site on Github Pages.\n\nWhat are understandable formats of datasets used in the library?\n----------------------------------------------------------------\nThere is no special format the library can work with for now, but *voxtrees* can\nhandle simple raw binary format (see documentation and examples). For example,\nyou can visit http://www.volvis.org/ to get some of datasets. Also you need to\nwrite a simple configuration file to work with dataset (or, if you use\n*voxengine*, write a loading script). Few datasets and configuration (`.cfg`)\nfiles present in `example` directory.\n\nDemo application\n----------------\nUsage: `voxvision-demo [-c \u003cglobal_config\u003e] \u003cdataset_config\u003e` where\n`dataset_config` is a configuration file for dataset and `global_config` is an\noptional global configuration file. These files are in `ini` format (as in\nMicrosoft Windows). See tutorial for more info.\n\nAlso, with version 0.20, here comes *voxengine* library and simple program,\nwhich uses its capabilities.\nUsage: `voxvision-engine [-w width] [-h height] [-f fps] -s script`. `script` is\nlua control script, look at `examples` directory.\n\nRequirements\n------------\n* SDL2\n* [iniparser](https://github.com/ndevilla/iniparser) for demo application,\n  optional\n* CUnit for unit tests\n* [GCD](https://en.wikipedia.org/wiki/Grand_Central_Dispatch) for parallel\n  rendering, optional, but highly recommended.\n* Doxygen for API documentation, optional\n* Lua \u003e= 5.2, optional, but highly recommended for *voxengine* library.\n* Clang or other compiller with support for blocks. GCC will not do.\n\nBuilding\n--------\nFrom directory containing this file:\n```\ngit submodule init\ngit submodule update\nmkdir build\ncd build\ncmake -DCMAKE_BUILD_TYPE=RELEASE ..\nmake\nmake install\n```\nLast step is optional. Also you can add `-DSSE_INTRIN=OFF` to the third line if\nyou have old hardware. If you do not have GCD, add `-DWITH_GCD=OFF`.\n\nFor more info visit [the project page](http://shamazmazum.github.io/voxvision)\n\nSpecial thanks\n--------------\n\nI want to thank Tangent128 for his luasdl2, lua binding to SDL2 which I currently\nuse.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshamazmazum%2Fvoxvision","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fshamazmazum%2Fvoxvision","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshamazmazum%2Fvoxvision/lists"}