• Skip to primary navigation
  • Skip to main content

Chris Offner

  • CONTACT
    • chrisoffner@pm.me
    • @chrisoffner3d
  • Show Search
Hide Search

Visualising the Colour Cube

Chris Offner · May 18, 2020 ·

The $\text{RGB}$ cube model represents colours as vectors in a three-dimensional vector space, with red, green, and blue as orthogonal basis vectors. A triple $\text{rgb}(r, g, b)$ tells us how far along the red, green, and blue axis our colour is. Pure black is $\text{rgb}(0, 0, 0)$ and pure white is $\text{rgb}(1, 1, 1)$.

Two common ways to parameterise colour properties are the $\text{HSV}$ and $\text{HSL}$ models. We can use $\text{hsv}(h, s, v)$ triples to specify hue, saturation, and value of a colour, or $\text{hsl(h, s, l)}$ triples to specify hue, saturation, and lightness of a colour. Value and lightness may at first seem similar but represent different properties of colours in the colour cube.

Achromatic axis and “spectral colours”

The diagonal axis through the cube, between the black points $\text{rgb}(0,0,0)$ and the white point $\text{rgb}(1,1,1)$ represents the greyscale of all fully desaturated colours, the $\text{achromatic axis}$. Along the edges of the cube that touch neither black nor white are the colours with full saturation ($s=1$) and full value ($v=1$).

HSL

Here we see the HSL colours with lightness = 0.5:

Homogeneous Coordinate Weirdness

Chris Offner · May 1, 2020 ·

If we plot 4000 points on the line segment from (-1, 0) to (0, 1), and transform each of them with $M = \begin{bmatrix}2 & 3 &4\\-1 & 0 & 0\\2&2&1\end{bmatrix}$, we get an initially surprising result:

The short segment represents the preimage points, the two long ones the image.

As we can see, something strange happens in the yellow region of the points. While the red-to-orange points get transformed to a top right to bottom left diagonal, some yellow point we transform jumps from the bottom left to the top right, and subsequent points continue to get transformed along that line.

What’s happening here is that $M$ happens to transform a yellow point onto a point at infinity. Below, we can see this visualised on the projective unit sphere model.

Notice how the red segment $\overleftrightarrow{EF}$ gets longer and longer as the line through the origin that generates point $E$ on the projective plane approaches a right angle with the $z$ axis, and then “jumps” over to reappear from the other side.

Testing GeoGebra embeds

Chris Offner · Apr 24, 2020 ·

This purpose of this post is merely to test embeds of GeoGebra3D scenes, how they look, and how interactions with them feel.

Silicon Valley’s desperate search for love

Chris Offner · Apr 3, 2020 ·

Most of [my] work at MIT and before that has been on robotics and autonomous vehicles. But now the dream is to create a system that you can love and that can love you back.

Lex Fridman

As a fellow computer science student I’m always saddened by Silicon Valley crowd’s desperate quest to find/create love within the machine. It seems the world would be spared a lot of technological missteps if they’d foster such ‘systems’ in the analog world, in the form of families and communities instead.

Trying to engineer technological substitutes for human love and connection strikes me as a fundamentally misguided endeavour. As fascinated as I am by the science and engineering, I think the work of technologists should be to develop systems that support and strengthen civilisation. One of those ways could be to automate necessary but dangerous, difficult, or mind-numbing work so that we can spend more time with our loved ones, create communities, engage and play in shared creativity, connecting on a physical level – all those most human things. Another could be to protect the environment. Build shared and sustainable prosperity for as many people as possible.

There are so many valuable goals. Building a machine capable of love is necessary for none of them. In my view it’s a massive distraction.

Blender, Maya & MODO: Context-Sensitive Behaviour

Chris Offner · Apr 1, 2016 ·

In this video I talk about the concept of context-sensitive behaviour and how I personally find it highly beneficial as a UX design concept for facilitating a fluent and intuitive artist workflow. MODO, Maya and Blender have their different approaches and degrees of implementation of this principle but Blender’s modelling tools are where I found myself missing this paradigm the most – maybe others feel similarly and this video can serve as inspiration to further a discussion on this topic. 🙂

  • The Foundry forum thread
  • BlenderArtists forum thread
  • Go to page 1
  • Go to page 2
  • Go to page 3
  • Interim pages omitted …
  • Go to page 7
  • Go to Next Page »

Copyright © 2023 Chris Offner