<commit_before>HYPERSPECTIVES
===============
This is going to be a collection of my experiments related to moebius 
transformations and interesting mappings of 3d geometry.  The goal is 
to offer unique perspectives on various aspects of what it means to be 
a creature living in living in space and to learn about math in the
process.

[http://hyperspectives.timbremill.net/moebius/hyperhorse.html](Hyper Horse)
---------------------------------------------------------------------------
### What's going on here?
The horse is inverse stereographically projected onto the hypersphere, 
rotated, and projected back again. Dragging the mouse moves the 
camera. Pressing the left & right arrow keys decrements and 
increments the rotation speed.

### How does it work?
[<NAME>’s blog posts][1] give a great overview of this stuff.  
Another big help is [Moebius Transformations
Revealed][2], which shows the 2 dimensional Moebius transformations.  
It really gives an idea of what's going on in a more familiar space.  
And of course Wikipedia articles: [Stereographic projection][3], [Möbius
transformation][4], [Isoclinic decomposition.][5]

  [1]: http://spacesymmetrystructure.wordpress.com/category/Inversion/
  [2]: http://www.youtube.com/watch?v=JX3VmDgiFnY
  [3]: http://wikipedia.org/wiki/Stereographic_projection
  [4]: http://wikipedia.org/wiki/Mobius_group
  [5]: http://en.wikipedia.org/wiki/Rotations_in_4-dimensional_Euclidean_space#Isoclinic_decomposition
  
### [http://hyperspectives.timbremill.net/shaders/moebiusVertex.glsl](Vertex Shader)
This GLSL code does the actual geometry work of the stereographic 
projection and 4 dimensional rotation.  You can see that it takes two 
four-dimensional vectors as input.  Those are the parameters for the 
[isoclinic rotation matrices][4], which should each have determinants 
of 1 since they are rotations.  So you have to be careful what you put 
in them!

### [http://hyperspectives.timbremill.net/shaders/moebiusVertex.glsl](Fragment Shader)
This does the coloring.  It is very simple.  It takes the normal 
vector and does a dot product with each eigenvalue.  Since we are 
shading in 3 dimensional space, there is conveniently one eigen-value 
for each primary color!

More Information
----------------
There is an extremely good video series online called (Dimensions 
Math)[http://www.dimensions-math.org/].  You should really watch all 
of them!<commit_msg>readme updates<commit_after>HYPERSPECTIVES
===============
This is going to be a collection of my experiments related to moebius 
transformations and interesting mappings of 3d geometry.  The goal is 
to offer unique perspectives on various aspects of what it means to be 
a creature living in living in space and to learn about math in the
process.

[http://hyperspectives.timbremill.net/moebius/hyperhorse.html](Hyper Horse)
---------------------------------------------------------------------------
### What's going on here?
The horse is inverse stereographically projected onto the hypersphere, 
rotated, and projected back again. Dragging the mouse moves the 
camera. Pressing the left & right arrow keys decrements and 
increments the rotation speed.

### How does it work?
[<NAME>’s blog posts][1] give a great overview of this stuff.  
Another big help is [Moebius Transformations
Revealed][2], which shows the 2 dimensional Moebius transformations.  
It really gives an idea of what's going on in a more familiar space.  
And of course Wikipedia articles: [Stereographic projection][3], [Möbius
transformation][4], [Isoclinic decomposition.][5]

  [1]: http://spacesymmetrystructure.wordpress.com/category/Inversion/
  [2]: http://www.youtube.com/watch?v=JX3VmDgiFnY
  [3]: http://wikipedia.org/wiki/Stereographic_projection
  [4]: http://wikipedia.org/wiki/Mobius_group
  [5]: http://en.wikipedia.org/wiki/Rotations_in_4-dimensional_Euclidean_space#Isoclinic_decomposition
  
### [http://hyperspectives.timbremill.net/shaders/moebiusVertex.glsl](Vertex Shader)
This GLSL code does the actual geometry work of the stereographic 
projection and 4 dimensional rotation.  You can see that it takes two 
four-dimensional vectors as input.  Those are the parameters for the 
[isoclinic rotation matrices][4], which should each have determinants 
of 1 since they are rotations.  So you have to be careful what you put 
in them!

### [http://hyperspectives.timbremill.net/shaders/moebiusVertex.glsl](Fragment Shader)
This does the coloring.  It is very simple.  It takes the normal 
vector and does a dot product with each eigenvalue.  Since we are 
shading in 3 dimensional space, there is conveniently one eigen-value 
for each primary color!

More Information
----------------
There is an extremely good, free video series online called [http://www.dimensions-math.org/](Dimensions 
Math).  You should probably watch all of them.
{'fraction_non_alphanumeric': 0.1157959687371452, 'fraction_numerical': 0.007404360345536816, 'mean_word_length': 3.917087967644085, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 5, 'https://': 0, 'lorem ipsum': 0, 'www.': 4, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1230820', 'n_tokens_mistral': 1385, 'n_tokens_neox': 1319, 'n_words': 547}