# Coloring surfaces in slicer

**URL:** <https://discourse.slicer.org/t/coloring-surfaces-in-slicer/11202>\
**Category:** Support\
**Tags:** color\
**Created:** [April 20, 2020, 1:47pm UTC](https://discourse.slicer.org/t/coloring-surfaces-in-slicer/11202 "2020-04-20T13:47:37Z")\
**Posts on this page:** 1\
**Page:** 2

<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:** [April 25, 2020, 3:02am UTC](https://discourse.slicer.org/t/coloring-surfaces-in-slicer/11202/21 "2020-04-25T03:02:13Z")

</div>

You can get model point positions as numpy array using [arrayFromModelPoints](https://slicer.readthedocs.io/en/latest/developer_guide/slicer.html#slicer.util.arrayFromModelPoints) and point scalars (if you have added point scalar array) using [arrayFromModelPointData](https://slicer.readthedocs.io/en/latest/developer_guide/slicer.html#slicer.util.arrayFromModelPointData), but it would be much slower and more complicated to process the meshes using numpy.

Instead, you can extract non-zero voxels from your volume using [vtkThreshold](https://vtk.org/doc/nightly/html/classvtkThreshold.html) then interpolate values onto the isosurface using [vtkPointInterpolator](https://vtk.org/doc/nightly/html/classvtkPointInterpolator.html).

[Previous page](https://discourse.slicer.org/t/coloring-surfaces-in-slicer/11202.md?page=1)
