Because that explanation is expected to be wrong. This is a partially trained tiny model, Andrej shared that obviously incorrect explanation to emphasize that the model is not trustworthy or useful at that stage.
I think you are confused about what 'simply connected' means. A 3x3 matrix can represent any rotation. Also from a given rotation there is a path through the space of rotations to any other rotation. It's just that some paths can't be smoothly mapped to some other paths.
SO(3) contains all of the orthogonal 3x3 matrices of determinant 1.
If you are dealing with rigid bodies rotated though the origin like with the product of linear translations you can avoid the problem. At least with an orthonormal basis R^3 with an orthogonal real valued 3x3 matrix real entries which, where the product of it with its transpose produces the identity matrix and with determinant 1
But as soon as you are dealing with balls, where the magnitude can be from the origin to the radius, you run into the issue that the antipodes are actually the same point, consider the north and south poles being the same point, that is what I am saying when the topology is not simply connected.
The rigid body rotation about the origin is just a special case.
Twist a belt twice and tape one end to the table and you can untwist it with just horizontal translation, twist it once (360deg) and you cannot.
The belt trick is about smoothly mapping paths through SO(3) to each other, not about if any point in SO(3) is reachable from any other point. I think you are confusing the notion of 'simple-connected' with just 'connected'.
No, the belt trick is about the fundamental group of SO(n) where n>2 is Z_2and the fact that a 4pi rotation is homotopic to the identity.
It is often introduced as RP^3 being isomorphic to SO(3) and as RP^3 is not simply being connected thus SO(3) cannot be.
They don’t explain why until students have the ability to deal with 4D 3-spheres being projected on 4D hyperplanes.
You can build an intuition with a 2-sphere being projected through the origin onto a 2d plane. This will demonstrate how the antipodes are not uniquely identified.
If you go from SU(2), which is the double cover of SO(3) you can use basic algebra to reduce it to a^2+b^2+c^2+d^2=1 where a,b, and c are your free variables and figure it out.
It works well without that complexity at lower levels because people are actually rotating the clopen set, which is only allowed to be the entire body or the empty set.
The 4pi symmetry applies to the topological properties of neurons and the plate trick in the real world because you are translating a portion or a property of the body and not the entire body.
Same thing on how they don’t introduce Tori topology when using Euler angles.
Pick up basically any topology or Lie algebra book targeted at first year grad students and the topic will be covered.
Bredon’s Topology and Geometry is one I personally like.
I should add that “connectedness” is a local property that has to be everywhere.
The antipode pairs don’t have unique identities they are identified together, but IIRC they are never close enough to break that local condition of connectivity.
You could use the unit circle and a line at x=2, connecting points of that line through the origin and see how that identification of two points on the unit circle happens with that one line.
That may help but it wouldn’t explain the issues with so(3) that results in a 720 deg rotation being equivalent to a 0 deg rotation.
It would explain the point at infinity concepts as the poles are indescribable with a line from X=2 through the origin.
Cool. If you want to try rendering some flame fractals, you can try our Fractal software Chaotica (https://www.chaoticafractals.com/) which was used to make the first image in the linked post (Vorpol Dawn By technochroma).
We didn't exactly use compute shaders for Chaotica, we used OpenCL instead, which is a more general GPGPU framework like CUDA.
I would love this. I have to do disgusting hacks to get an embedded browser window in my metaverse (https://substrata.info/) that uses webgl.
The disgusting hack is to render the browser window behind the main webgl canvas, and then punch a hole through the webgl canvas with zero alpha. Event handling (mouse, keyboard) is also a total pain.
Yeah, for example Unity uses C#, so you can used a managed CUDA library. If you're using a C engine like Unreal etc. its even easier since you can just include the code.
But having said that, a giant drawback to using CUDA in gaming is that the overhead of transforming and copying your data to/from CUDA kills off a lot of the performance, so while its still great its not nearly as good as writing compute shaders.
They are a topic of their own, the code can start off quite basic but with recent additions you can now also do some really advanced thread management and coordination.
They still come with big overhead to moving data around, but in general they're better suited to the use-case than CUDA.
Very nice. It seems some of the algorithms are (inadvertently?) solving the shallow water equations. Looks similar to the results I was getting working on https://github.com/Ono-Sendai/terraingen
They had been vikings. They integrated very quickly on the continent, inter-married with locals and absorbed the culture within a couple of generations. It was nothing like the power structure that was put in place in England.
https://substrata.info/
In particular hardware-accelerated video playback, and adding Portals.