• Skip to primary navigation
  • Skip to main content

Chris Offner

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

General

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.

“Select Next” in MODO and Blender

Chris Offner · Mar 26, 2016 ·

Comparing “Select Next Active” (Ctrl+Shift+Numpad(+)) in Blender with MODO’s “Select Next” (Arrow Up), MODO very clearly comes out on top.

Blender fails to find a plausible next edge to select way too often – even in cases where the next expected edge is quite obvious.

  • This post on the BlenderArtists forums
  • This post on The Foundry’s forum
  • Go to page 1
  • Go to page 2
  • Go to Next Page »

Copyright © 2023 Chris Offner