Since a normal is just a unit vector, it should be easy to calculate the third component (Z, blue) from the other two (X, red and Y, green) using simple trigonometry, B = SQRT(1-((R*R)+(G*G)))

(No, there’s not really any point in doing this, but it’s just the simplest way I found to explain the problem)

That’s what this next network does. (The three bricks in the bottom right are simply to verify that the calculated Z(blue) value matches the Z (blue) output of the splitter brick - it does)

I would expect this network to work too, but it doesn’t!

(Edit: discovered an even simpler demonstration of the problem - see the fifth post (#4) for the network I used)