{"id":28104152,"url":"https://github.com/raphiniert-com/volume_renderer","last_synced_at":"2025-10-25T22:10:41.711Z","repository":{"id":241833385,"uuid":"233104278","full_name":"raphiniert-com/volume_renderer","owner":"raphiniert-com","description":"GPU-enabled Volume Renderer for use with MATLAB®","archived":false,"fork":false,"pushed_at":"2024-11-28T14:19:17.000Z","size":7248,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-11-28T15:26:16.687Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"MATLAB","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/raphiniert-com.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-01-10T18:08:49.000Z","updated_at":"2024-11-28T14:19:21.000Z","dependencies_parsed_at":"2024-05-30T08:04:37.859Z","dependency_job_id":"e35d7ccc-d5b6-43c3-8dce-121f8dc01754","html_url":"https://github.com/raphiniert-com/volume_renderer","commit_stats":null,"previous_names":["raphiniert-com/volume_renderer"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raphiniert-com%2Fvolume_renderer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raphiniert-com%2Fvolume_renderer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raphiniert-com%2Fvolume_renderer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raphiniert-com%2Fvolume_renderer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/raphiniert-com","download_url":"https://codeload.github.com/raphiniert-com/volume_renderer/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254023169,"owners_count":22001257,"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":"2025-05-13T20:41:48.403Z","updated_at":"2025-10-25T22:10:36.672Z","avatar_url":"https://github.com/raphiniert-com.png","language":"MATLAB","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Volume Renderer \u003csmall\u003efor use with MATLAB®\u003c/small\u003e\n\n_Volume Renderer \u003csmall\u003efor use with MATLAB®\u003c/small\u003e_ extends MATLAB® by a GPU-accelerated volume render command that handles 3D volumetric data. The core application is implemented in C/C++. To guarantee fast computations the render process computes on the GPU. This is realized by NVIDIA® CUDA®. Furthermore _Volume Renderer \u003csmall\u003efor use with MATLAB®\u003c/small\u003e_ provides the following features:\n\n*   **Special memory management:** Due to restricted GPU memory and the requirement to render more than one volume in one scene, we developed a special memory management to enable the rendering of huge data sets in separate rendering passes. Afterward these separately rendered images are combined to one image using MATLAB®.\n*   **Generic illumination model:** We developed a generic illumination model that is easy to extend with other illumination functions. The provided function is the Henyey-Greenstein phase function.\n*   **Stereo rendering:** In some use cases there is a nice feature to work with stereo images. Thus, the renderer offers the possibility to render off-axis stereo images.\n*   **High usability:** To enable a high usability a MATLAB® interface consisting of several MATLAB® classes has been developed. Due to this interface it is uncomplicated to generate movies.\n*   **Memory Management:** In order to increase the speed of the renderer, volumes are transferred to the GPU if any change of data occured. This is realized by persisting the memory between all render built upon [this code](https://de.mathworks.com/matlabcentral/fileexchange/38964-example-matlab-class-wrapper-for-a-c-class).\n\n\n## Requirements\n* CUDA® capable NVIDIA® graphics device which is compatible with CUDA 10.2\n* Linux or Windows computer (64 bit) with installed NVIDIA® driver and CUDA® 10.2\n* MATLAB® \u003csup id=\"a1\"\u003e[1](#f1)\u003c/sup\u003e with\n  * [Image Processing Toolbox](https://www.mathworks.com/products/image.html)\n  * [Parallel Computing Tookbox](https://mathworks.com/products/parallel-computing.html) for compilation (requires [mexcuda](https://de.mathworks.com/help/parallel-computing/mexcuda.html))\n\n\n## Installation\nFirst download and extract or clone the repository. Next, download and install the following tools:\n- [CUDA 10.2](https://developer.nvidia.com/cuda-downloads)\n- [Setup some C compiler](https://de.mathworks.com/support/requirements/supported-compilers.html)\n\nNext, open matlab and navigate to the folder with the render code in matlab. Adjust the CUDA path in `src/make.m` and run it from within `src`. This command will compile all mex-files for the renderer.\nEither, enter `src/matlab` to run code and place your matlab renderer code there, or setup matlab to load this folder at each startup into its search path as described [here](https://de.mathworks.com/help/matlab/matlab_env/add-folders-to-matlab-search-path-at-startup.html) (recommended).\n\n\n## Documentation\nIn order to generate a [doxygen documentation](https://doxygen.nl) in html, we offer a `Doxyfile`. Install the tool and run `doxygen Doxyfile`.\nThe resulting Documentation will be stored in `docs/doxygen`. Further, in order to get an theoretical understanding of the concepts, read the related published [research paper](https://www.mdpi.com/2673-6470/4/4/49).\n\n## Example\nThe following video demonstrates the power of the renderer:\n\n![Demo CountPages alpha](docs/example_vr_zebra.gif)\n\n### Example Code\nIn `src/matlab` are four examples:\n  - `example1.m`: creating a 2D image of a zebrafish embrio dataset\n  - `example1_grad.m`: same as above, but using precomputed gradient volumes instead of on the fly gradient computation\n  - `example2.m`: create a video of the zebrafish embrio\n  - `example3.m`: same as example 2, but using two channels and fading out one side of the average brain of the zebrafish\n\nThey all are built upon one dataset from [1]. In order to run the examples mentioned above, one needs to put the required file `ViBE-Z_72hpf_v1.h5` in `examples/h5-data/`. The scripts are setup to be run from anywhere, either with `add path` or change into the directory.\n\n## License\n- The Volume renderer is licensed under [GNU Affero General Public License version 3](https://opensource.org/licenses/AGPL-3.0).\n- The examples are licensed under [MIT](https://opensource.org/licenses/MIT).\n- Copyright 2020-present © [Raphael Scheible](https://raphiniert.com)\n\n## Acknowledgments\nOriginally, Raphael Scheible started Volume Renderer for use with MATLAB® as a student at the University of Freiburg, with the assistance of [Benjamin Ummenhofer](http://lmb.informatik.uni-freiburg.de/people/ummenhof/) and [apl. Prof. Dr. Olaf Ronneberger](http://lmb.informatik.uni-freiburg.de/people/ronneber/).\n\n## References\n[1]  \u003ca id=\"ref1\"\u003e\u003c/a\u003eRonneberger, O and Liu, K and Rath, M and Ruess, D and Mueller, T and Skibbe, H and Drayer, B and Schmidt, T and Filippi, A and Nitschke, R and Brox, T and Burkhardt, H and Driever, W. **[ViBE-Z: A Framework for 3D Virtual Colocalization Analysis in Zebrafish Larval Brains](http://lmb.informatik.uni-freiburg.de//Publications/2012/RLSDSBB12) .** 2012. _Nature Methods,_ 9(7):735--742. [↩](#r1)\n\n## Citation\nIf you use the renderer in your research, please cite the following paper:\n```bibtex\n@Article{digital4040049,\n  AUTHOR = {Scheible, Raphael},\n  TITLE = {GPU-Enabled Volume Renderer for Use with MATLAB},\n  JOURNAL = {Digital},\n  VOLUME = {4},\n  YEAR = {2024},\n  NUMBER = {4},\n  PAGES = {990--1008},\n  URL = {https://www.mdpi.com/2673-6470/4/4/49},\n  ISSN = {2673-6470},\n  DOI = {10.3390/digital4040049}\n}\n```\n\n---\n\n\u003ca id=\"f1\"\u003e\u003c/a\u003e1: tested and developed under R2022a; might work from R2018a [↩](#a1)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fraphiniert-com%2Fvolume_renderer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fraphiniert-com%2Fvolume_renderer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fraphiniert-com%2Fvolume_renderer/lists"}