# 2020.09.21 Hangout w/ Project Week Discussion

**URL:** <https://discourse.slicer.org/t/2020-09-21-hangout-w-project-week-discussion/13594>\
**Category:** Weekly meetings\
**Created:** [September 21, 2020, 6:34pm UTC](https://discourse.slicer.org/t/2020-09-21-hangout-w-project-week-discussion/13594 "2020-09-21T18:34:14Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![jcfr](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/jcfr/32/17825_2.png) [@jcfr](https://discourse.slicer.org/u/jcfr)\
**Post date:** [September 21, 2020, 6:34pm UTC](https://discourse.slicer.org/t/2020-09-21-hangout-w-project-week-discussion/13594/1 "2020-09-21T18:34:14Z")

</div>

Tomorrow, we will be having our next weekly hangout at 10:00 AM ET until 11 AM ET.

Anyone is welcome to join to ask questions at [https://bit.ly/slicer-googlemeet-hosted-by-kitware](https://bit.ly/slicer-googlemeet-hosted-by-kitware)

Agenda (10:00 - 10:30):

- Slicer 5 + VTK 9 checkin
- Discuss the creation of a standalone project to maintain Slicer Volume Rendering presets. More details below. (cc: @forrest.li @Sankhesh_Jhaveri)

Agenda (10:30 - 11:00):

- We will be brainstorming ideas for what a fully virtual January project week could look like.

Feel free to post to this thread to request/suggest a topic!

Thanks  
Sam and J-Christophe

## Standalone project for organizing volume rendering presets

**Goal** : Streamline maintenance and distribution of the presets to facilitate (1) re-use and (2) integration of improvements.

**Proposed approach**

Create a repository called `Slicer/SlicerVTKVolumeRenderingTransferFunctions` distributed (for example) as:

- git submodule, cmake external project (e.g faciliate integraiton in any project)
- python package (e.g support re-use in Jupyter env.)
- npm package (e.g to streamline integration in [vtk.js](https://kitware.github.io/vtk-js/index.html))
- VTK remote module (e.g to streamline interation in VTK or paraview based applications)

**Open questions**

- Which distribution mechanism should we implement first ?

**Requirements**

- Add versioning, changelog, contributing, license and documentation
- Add thumbnail for each preset
- Distribute as both XML and json files

---

<div class="post-metadata">

**Author:** ![lassoan](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/lassoan/32/13_2.png) [@lassoan](https://discourse.slicer.org/u/lassoan)\
**Post date:** [September 21, 2020, 7:53pm UTC](https://discourse.slicer.org/t/2020-09-21-hangout-w-project-week-discussion/13594/2 "2020-09-21T19:53:30Z")

</div>

> [@jcfr](#):
>
> Slicer/SlicerVTKVolumeRenderingTransferFunctions

Sounds good. Volume rendering presets are not just about transfer functions but also shading, material properties, mode (composite, minimum intensity projection, maximum intensity projection), jittering, shader properties, etc. So, the name should be more general, something like `SlicerVTKVolumeRenderingPresets`.

Instead of reinventing yet another custom file format, it would be nicer if we could build on an existing one. For example, we could define custom glTF extension for storing volume rendering presets.

> [@jcfr](#):
>
> Distribute as both XML and json files

Minor detail, but probably it will be better to focus on a single format and do it well.

---

<div class="post-metadata">

**Author:** ![pieper](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/pieper/32/8_2.png) [@pieper](https://discourse.slicer.org/u/pieper)\
**Post date:** [September 21, 2020, 8:05pm UTC](https://discourse.slicer.org/t/2020-09-21-hangout-w-project-week-discussion/13594/3 "2020-09-21T20:05:30Z")

</div>

We could be inspired by the material property definitions and extensions in glTF:

> <https://github.com/KhronosGroup/glTF/tree/main/extensions>
>
> //github.com/KhronosGroup/glTF/tree/main/extensions

On a related topic, we should look at how to standardize encoding of metatdata in glTF.

It would also be great to investigate volumes in glTF, but the standard states:

> **Implementation Note** glTF 2.0 supports only 2D textures.

---

<div class="post-metadata">

**Author:** ![lassoan](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/lassoan/32/13_2.png) [@lassoan](https://discourse.slicer.org/u/lassoan)\
**Post date:** [September 21, 2020, 8:33pm UTC](https://discourse.slicer.org/t/2020-09-21-hangout-w-project-week-discussion/13594/4 "2020-09-21T20:33:56Z")

</div>

It would be nice if 3D volumes were standard glTF but it is not a big issue if we need to define custom extensions for volume storage.

---

<div class="post-metadata">

**Author:** ![pieper](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/pieper/32/8_2.png) [@pieper](https://discourse.slicer.org/u/pieper)\
**Post date:** [September 21, 2020, 8:35pm UTC](https://discourse.slicer.org/t/2020-09-21-hangout-w-project-week-discussion/13594/5 "2020-09-21T20:35:20Z")

</div>

Yes, we’ll need custom extensions for our metadata anyway.

---

<div class="post-metadata">

**Author:** ![Sam\_Horvath](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/sam_horvath/32/3092_2.png) [@Sam\_Horvath](https://discourse.slicer.org/u/Sam_Horvath)\
**Post date:** [September 22, 2020, 1:40pm UTC](https://discourse.slicer.org/t/2020-09-21-hangout-w-project-week-discussion/13594/6 "2020-09-22T13:40:20Z")

</div>

I’d like to also look at the launchProcess crash: [https://github.com/Slicer/Slicer/issues/5078](https://github.com/Slicer/Slicer/issues/5078)

---

<div class="post-metadata">

**Author:** ![jcfr](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/jcfr/32/17825_2.png) [@jcfr](https://discourse.slicer.org/u/jcfr)\
**Post date:** [September 28, 2020, 6:24pm UTC](https://discourse.slicer.org/t/2020-09-21-hangout-w-project-week-discussion/13594/7 "2020-09-28T18:24:58Z")

</div>

> Standalone project for organizing volume rendering presets

This is now tracked in [Create SlicerVTKVolumeRenderingPresets repository · Issue #5206 · Slicer/Slicer · GitHub](https://github.com/Slicer/Slicer/issues/5206)
