1 Colour - Visuals#
A Python package implementing various WebGPU-based visuals on top of pygfx for colour science applications.
It is open source and freely available under the BSD-3-Clause terms.
1.1 Features#
1.1.1 Examples#
>>> import colour_visuals
>>> import numpy as np
>>> import pygfx as gfx
>>> from wgpu.gui.auto import WgpuCanvas, run
>>> canvas = WgpuCanvas(size=(960, 540))
>>> renderer = gfx.renderers.WgpuRenderer(canvas)
>>> camera = gfx.PerspectiveCamera(50, 16 / 9) # pyright: ignore
>>> controller = gfx.OrbitController(camera)
>>> controller.register_events(renderer)
>>> scene = gfx.Scene()
>>> scene.add(
... gfx.Background(
... None, gfx.BackgroundMaterial(np.array([0.18, 0.18, 0.18]))
... )
... )
>>> visuals = [
... colour_visuals.VisualGrid(size=2),
... colour_visuals.VisualChromaticityDiagramCIE1931(
... kwargs_visual_chromaticity_diagram={"opacity": 0.25}
... ),
... colour_visuals.VisualRGBColourspace2D("ACEScg"),
... colour_visuals.VisualRGBColourspace2D(
... "Display P3", colours=np.array([0.5, 0.5, 0.5])
... ),
... colour_visuals.VisualRGBColourspace3D(
... "Display P3", opacity=0.5, wireframe=True
... ),
... colour_visuals.VisualRGBScatter3D(
... np.random.random([24, 32, 3]), "ACEScg"
... ),
... ]
>>> group = gfx.Group()
>>> for visual in visuals:
... group.add(visual)
...
>>> scene.add(group)
>>> camera.local.position = np.array([-0.25, -0.5, 2])
>>> camera.show_pos(np.array([1 / 3, 1 / 3, 0.4]))
>>> canvas.request_draw(lambda: renderer.render(scene, camera))
>>> run()
>>> import colour_visuals
>>> import numpy as np
>>> import pygfx as gfx
>>> from wgpu.gui.auto import WgpuCanvas, run
>>> canvas = WgpuCanvas(size=(960, 540))
>>> renderer = gfx.renderers.WgpuRenderer(canvas)
>>> camera = gfx.PerspectiveCamera(50, 16 / 9) # pyright: ignore
>>> controller = gfx.OrbitController(camera)
>>> controller.register_events(renderer)
>>> scene = gfx.Scene()
>>> scene.add(
... gfx.Background(
... None, gfx.BackgroundMaterial(np.array([0.18, 0.18, 0.18]))
... )
... )
>>> visuals = [
... VisualGrid(size=4),
... VisualSpectralLocus3D(model="CIE Lab"),
... VisualPointerGamut3D(
... model="CIE Lab", colours=np.array([1, 0.5, 0])
... ),
... VisualRGBColourspace3D(
... "Display P3",
... model="CIE Lab",
... opacity=0.5,
... wireframe=True,
... segments=8,
... ),
... VisualRGBScatter3D(
... np.random.random([24, 32, 3]), "Display P3", model="CIE Lab"
... ),
... ]
>>> group = gfx.Group()
>>> for visual in visuals:
... group.add(visual)
...
>>> scene.add(group)
>>> camera.local.position = np.array([1.5, -1.5, 5])
>>> camera.show_pos(np.array([0, 0, 0.5]))
>>> canvas.request_draw(lambda: renderer.render(scene, camera))
>>> run()
1.1.1.1 Chromaticity Diagram Visuals#
>>> colour_visuals.Plotting_VisualSpectralLocus2D()
>>> colour_visuals.VisualChromaticityDiagramCIE1931(
... kwargs_visual_chromaticity_diagram={"opacity": 0.25}
... )
1.1.1.2 Pointer’s Gamut Visuals#
>>> colour_visuals.VisualPointerGamut2D()
>>> colour_visuals.VisualPointerGamut3D()
1.1.1.3 RGB Colourspace Visuals#
>>> colour_visuals.VisualRGBColourspace2D()
>>> colour_visuals.VisualRGBColourspace3D()
1.1.1.4 RGB Scatter Visuals#
>>> colour_visuals.VisualRGBScatter3D(np.random.random([24, 32, 3]))
1.1.1.5 Rösch-MacAdam Visuals#
>>> colour_visuals.VisualRoschMacAdam()
1.2 User Guide#
1.3 API Reference#
1.4 Code of Conduct#
The Code of Conduct, adapted from the Contributor Covenant 1.4, is available on the Code of Conduct page.
1.6 About#
Colour - Visuals by Colour Developers
Copyright 2023 Colour Developers – colour-developers@colour-science.org
This software is released under terms of BSD-3-Clause: https://opensource.org/licenses/BSD-3-Clause