{"id":40622368,"url":"https://github.com/forceflow/svo_tools","last_synced_at":"2026-01-21T07:03:11.370Z","repository":{"id":10792125,"uuid":"13062306","full_name":"Forceflow/svo_tools","owner":"Forceflow","description":"Tools for working with the .svo file format","archived":false,"fork":false,"pushed_at":"2016-06-28T01:49:15.000Z","size":115,"stargazers_count":24,"open_issues_count":1,"forks_count":2,"subscribers_count":4,"default_branch":"master","last_synced_at":"2023-08-02T18:54:43.661Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Forceflow.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2013-09-24T11:20:34.000Z","updated_at":"2021-11-15T12:34:41.000Z","dependencies_parsed_at":"2022-09-01T21:02:16.524Z","dependency_job_id":null,"html_url":"https://github.com/Forceflow/svo_tools","commit_stats":null,"previous_names":[],"tags_count":1,"template":null,"template_full_name":null,"purl":"pkg:github/Forceflow/svo_tools","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Forceflow%2Fsvo_tools","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Forceflow%2Fsvo_tools/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Forceflow%2Fsvo_tools/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Forceflow%2Fsvo_tools/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Forceflow","download_url":"https://codeload.github.com/Forceflow/svo_tools/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Forceflow%2Fsvo_tools/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28629229,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-21T04:47:28.174Z","status":"ssl_error","status_checked_at":"2026-01-21T04:47:22.943Z","response_time":86,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":"2026-01-21T07:03:10.424Z","updated_at":"2026-01-21T07:03:11.360Z","avatar_url":"https://github.com/Forceflow.png","language":"C++","readme":"# svo_tools\nThis repository contains tools for working with the SVO file format, the format used in the alpha-stage virtual world developed by Hifi (**[Hifi repo](https://github.com/worklist/hifi \"Hifi repo\")**).\n\nCurrently, this repository contains: \n * **svo_convert**, a command-line tool to convert any model file (.ply, .3ds, ...) to an SVO structure, through voxelization and SVO building.\n * **octree2svo**, a command-line tool to convert octrees generated using my **[Out-of-core Sparse Voxel Octree Builder](https://github.com/Forceflow/ooc_svo_builder \"ooc_svo_builder github repo\")** to .svo files.\n\nAll methods are based on **[Out-of-core Sparse Voxel Octree Builder](https://github.com/Forceflow/ooc_svo_builder \"ooc_svo_builder github repo\")**.\nStill very much in active development.\n\n## Binaries\nI put up some precompiled binaries for Windows, Linux and OSX on the **[releases page](https://github.com/Forceflow/svo_tools/releases)**\n\n# svo_convert\n\n## svo_convert Building\n**The only dependencies** for building is **[TriMesh2](http://gfx.cs.princeton.edu/proj/trimesh2/)** (used for model file I/O). The Trimesh2 distribution comes with pre-built binaries for all platforms, so just go ahead and **[download](http://gfx.cs.princeton.edu/proj/trimesh2/)** it, and unzip it to a location you remember.\nOpenMP support is optional, and is disabled for OSX.\n\n### Windows\nBuild using *src/svo_tools/svo_tools.sln* VS2012 on Win 64-bit. 32-bit building is not encouraged, but should work. You can grab a free version of Visual Studio Express **[here](http://www.microsoft.com/visualstudio/eng/downloads)**. The TriMesh2 libraries are built against MinGW, so when you're using the VS compiler, you have to rebuild the TriMesh2 library. This can be easily done using the MSVC project **[here](http://gfx.cs.princeton.edu/proj/trimesh2/src/trimesh2-2.11-MSVC.zip)**.\n\n### Linux\nBuild using gcc and cmake. Make sure you specify the environment variable TRIMESH2_ROOT.\n\nA typical compile on Linux would go like this:\n\u003cpre\u003e\ngit clone https://github.com/Forceflow/svo_tools\nexport TRIMESH2_ROOT=/home/jeroen/development/trimesh2/\ncd svo_tools\ncmake .\nmake\n\u003c/pre\u003e\n\n### OSX\nWe'll be using some tools which are available in the Apple-provided *Command Line Tools for Xcode*, which can be downloaded from within Xcode (like described **[here](http://stackoverflow.com/questions/9353444/how-to-use-install-gcc-on-mac-os-x-10-8-xcode-4-4 here)**) or as a **[stand-alone download](https://developer.apple.com/downloads/)**.\n\n#### Compiling TriMesh2 with clang\nIn order to be able to use TriMesh2 with the default Apple clang compiler, we have to recompile the GCC-built binaries that came with it.\nTo do this, we have to disable OpenMP support, because clang doesn't have it.\n\nThe following steps are required:\n* Download the latest TriMesh2 zip from the **[TriMesh2 page](http://gfx.cs.princeton.edu/proj/trimesh2/)** and unzip it.\n* Navigate to your TriMesh2 folder\n* Open the file *MakeDefs.Darwin64* and remove the *-fopenmp* switch from *ARCHOPTS*\n* In the TriMesh2 folder, run *make*\n\nThis should recompile TriMesh2 with clang. If you cannot complete the steps in this paragraph, I've prepared a clang-compiled TriMesh2 version for download **[here](http://www.forceflow.be/temp/trimesh2-2.12-clang_version.zip)**.\n\n#### Compiling \nThe only thing left to do is to set the TRIMESH2_ROOT environment variable to point to your local TriMesh2 folder.\n\nA typical compile on OSX would go like this:\n\u003cpre\u003e\ngit clone https://github.com/Forceflow/svo_tools\nexport TRIMESH2_ROOT=/Users/jeroen/development/trimesh2/\ncd svo_tools\ncmake .\nmake\n\u003c/pre\u003e\n\nsvo_convert Usage\n-----------------\n\u003cpre\u003e\nsvo_convert -f /path/to/file.ply -s (gridsize) -c (color mode)\n\u003c/pre\u003e\n\nFull option list:\n* **-f** */path/to/file.ply* : Path to model file. Currently the file formats supported are those by TriMesh2: .ply, .3ds, .off, .obj.\n* **-s** *value* : Gridsize - only powers of 2 up to 1024 are supported: (1,2,4,8,16,32,64,128,256,512,1024).\n* **-c** *colormode* : Colormode -Options :\n    * *model* : Tries to grab colors from vertices. If the mesh has no colored vertices, it falls back to fixed color.\n    * *fixed* : All voxels get a fixed color (white).\n    * *normal* : Voxels get colored according to the normals of the mesh.\n\nsvo_convert Examples\n--------------------\n\n\u003cpre\u003e\nsvo_convert -f /home/jeroen/models/bunny.ply -s 512\n\u003c/pre\u003e\nWill generate a file named bunny.svo in the same folder, with an SVO of gridsize 512x512x512. It will use the default color mode, trying to fetch colors from the vertices, and failing that, will color the model white.\n\n\u003cpre\u003e\nsvo_convert -f /home/jeroen/models/horse.ply -s 256 -c normal\n\u003c/pre\u003e\nWill generate a file named horse.svo in the same folder, with an SVO of gridsize 256x256x256. It will use the normal-based color mode, in which each voxel gets colored according to the mesh face normal.\n\n#octree2svo\n\noctree2svo Building\n-------------------\n\n* **Windows** : Build using VS2012 on Win 64-bit. 32-bit building is not encouraged.\n* **Linux** : Build using build_linux.sh.\n\n**Dependencies** for building are **[Trimesh2](http://gfx.cs.princeton.edu/proj/trimesh2/)** and OpenMP support. You can specify the location of the Trimesh2 library in both the VS solution file and the linux build script.\n\noctree2svo Usage\n----------------\n\n* **octree2svo** -f /path/to/file.octree\n\nFull option list:\n* **-f** */path/to/file.octree* : Path to *.octree* file. The *.octreenodes* and *.octreedata* files should be in the same folder.\n* **-c** *color_mode* : (color_mode can be: *fixed*, *from_octree*) Specify the mode in which voxels should be colored. Default is a fixed white color, but you can also force octree2svo to use the colors embedded in the *.octree* file format by using switch *from_octree*.\n* **-h** : Print help and exit\n\noctree2svo Examples\n-------------------\n\nSo the full pipeline (including tools from [ooc_svo_builder](https://github.com/Forceflow/ooc_svo_builder)) to get from a model file in .ply, obj or .3ds format to an .svo file might look like this if you want a bunny with fixed colors:\n\n* **tri_convert_binary** -f *bunny.ply*\n* **svo_builder_binary** -f *bunny.tri* -s *1024*\n* **octree2svo** -f *bunny1024_1.octree*\n\nAnd if you want a bunny with voxel colors from the sampled normals:\n\n* **tri_convert** -f *bunny.ply*\n* **svo_builder** -f *bunny.tri* -s *1024* -c *normal*\n* **octree2svo** -f *bunny1024_1.octree* -c *from_octree*\n\nEach of these tools has more configuration options, please refer to the documentation.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fforceflow%2Fsvo_tools","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fforceflow%2Fsvo_tools","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fforceflow%2Fsvo_tools/lists"}