As discussed on the previous page, an algebra based on 2D vectors is the smallest, nontrivial clifford algebra so this may be a good chance to experiment with what we can change.
For instance, we can try changing the following aspects of the algebra:
 Do the basis vectors square to +ve, ve or zero?
 Do we choose e_{1}^e_{2} or e_{2}^e_{1} as the basis bivector?
 Do the components, not on the leading diagonal, anticommute?
Do we choose e_{1}^e_{2} or e_{2}^e_{1} as the basis bivector?
The bases are the vectors e1 and e2, however the higher level products such as e1^e2 is also as a basis for the bivectors.
The question is what order do we choose for this (which is equivalent to saying what sign do we use since e1^e2=e2^e1).
The methodology used for choosing the order of these indexes is explained here.
In the case of 2D multivectors there is not much of an issue since the only higher level product is the pseudoscalar e1^e2 or e2^e1 and since its the only one we might as well put the indexes in order as we do for all pseudoscalars so we use e1^e2.
Do the basis vectors square to +ve, ve or zero?
Lets try out the following combinations:
category  isomorphic to  
G 2,0,0  Both vectors square to +ve.  
G^{+}2,0,0  Even subalgebra of G 2,0,0  complex numbers 
G 0,2,0  Both vectors square to ve.  H = quaternions G+ 3,0,0 
G 1,1,0  One vector squares to +ve and the other squares to ve. 

G 0,0,2  Two vectors square to zero.  
G 1,0,1  One vector square to zero and the other to +ve.  
G 0,1,1  One vector square to zero and the other to ve.  dual complex numbers 
The multiplication table for each of these is derived below:
Both vectors square to +ve: G 2,0,0
This corresponds to normal 2 dimensional space. It can be fully defined by the multiplication table as follows:
a*b  b.e  b.e1  b.e2  b.e12 
a.e  e  e1  e2  e12 
a.e1  e1  e  e12  e2 
a.e2  e2  e12  e  e1 
a.e12  e12  e2  e1  e 
This table was generated using the program described on this page
As the above link explains, the table was generated by a computer program from the laws of vector algebra, that is: nonequal vector bases anticommute and equal vector bases square to scalars (+, or 0 as required). We could have done this manually as follows:
e_{1} e_{1} = 1 
because we have chosen to let vectors square to a positive scalar value. 
e_{1} e_{2} = e_{12} 
because we need vector multiplication to anticommute so that the vectors will cancel out when a general vector is squared: (a e_{1} + b e_{2})^{2} = a^{2} + b^{2}. 
e_{1} e_{12} = e_{2} e_{2} e_{12} = e_{2} e_{21} = e_{1} e_{12} e_{1} = e_{21} e_{1}= e_{2} e_{12} e_{2} = e_{1} 
these are derived from the results above using these rules. 
e_{12} e_{12} = e_{12} e_{21} = 1 
Even Subalgebra of G 2,0,0 which gives: G^{+}2,0,0
To take the even subalgebra we take the even grades: 0=scalars, 2=bivectors and remove the other grades to give:
a*b  b.e  b.e12 
a.e  e  e12 
a.e12  e12  e 
This table was generated using the program described on this page
This is the algebra of complex numbers where:
 e = real part
 e12 = complex part
Although a simpler way to generate complex number algebra is to use G 0,1,0.
Both vectors square to ve: G 0,2,0
This is similar to normal 2 dimensional space above, in some ways it is arbitrary choice whether vectors square to +ve or ve. it seems to swap over the signs of the anticommuting terms of e_{12} so perhaps it defines left or right handedness. It can be fully defined by the multiplication table as follows:
a*b  b.e  b.e1  b.e2  b.e12 
a.e  e  e1  e2  e12 
a.e1  e1  e  e12  e2 
a.e2  e2  e12  e  e1 
a.e12  e12  e2  e1  e 
This table was generated using the program described on this page
By compareing this to we quaternion table:
a*b 
b.1  b.i  b.j  b.k 
a.1  1  i  j  k 
a.i  i  1  k  j 
a.j  j  k  1  i 
a.k  k  j  i  1 
we can see that G 0,20, is isomorphic to H.
As the above link explains, the table was generated by a computer program from the laws of vector algebra, that is: nonequal vector bases anticommute and equal vector bases square to scalars (+, or 0 as required). We could have done this manually as follows:
e_{1} e_{1} = 1 
because we have chosen to let vectors square to a negative scalar value. 
e_{1} e_{2} = e_{12} 
as in above case except (a e_{1} + b e_{2})^{2} = a^{2}  b^{2}. 
e_{1} e_{12} = e_{2} e_{2} e_{12} = e_{2} e_{21} = e_{1} e_{12} e_{1} = e_{21} e_{1}= e_{2} e_{12} e_{2} = e_{1} 
these are derived from the results above using these rules. 
e_{12} e_{12} = e_{12} e_{21} = 1 
One vector squares to +ve and the other squares to ve:
G 1,1,0
This is like one dimension of time and one dimension of space, I'm not sure if this is consistent, please let me know of any issues:
a*b  b.e  b.e1  b.e2  b.e12 
a.e  e  e1  e2  e12 
a.e1  e1  e  e12  e2 
a.e2  e2  e12  e  e1 
a.e12  e12  e2  e1  e 
As the above link explains, the table was generated by a computer program from the laws of vector algebra, that is: nonequal vector bases anticommute and equal vector bases square to scalars (+, or 0 as required). We could have done this manually as follows:
e_{1} e_{1} = 1 
because we have chosen to let vectors square to these values. 
e_{1} e_{2} = e_{12} 
because we need vector multiplication to anticommute so that the vectors will cancel out when a general vector is squared: (a e_{1} + b e_{2})^{2} = a^{2}  b^{2}. 
e_{1} e_{12} = e_{2} e_{2} e_{12} = e_{2} e_{21} = e_{1} e_{12} e_{1} = e_{21} e_{1}= e_{2} e_{12} e_{2} = e_{1} 
these are derived from the results above using these rules. 
e_{12} e_{12} = e_{12} e_{21} = 1 
Note: this changes the sign of the square of the bivector.
Two vectors square to zero: G 0,0,2
Any term with two or more copies of e_{1} or e_{2} is zero:
a*b 
b.e  b.e1  b.e2  b.e12 
a.e  1  e_{1}  e_{2}  e_{12} 
a.e1  e_{1}  0  e_{12}  0 
a.e2  e_{2}  e_{12}  0  0 
a.e12  e_{12}  0  0  0 
As the above link explains, the table was generated by a computer program from the laws of vector algebra, that is: nonequal vector bases anticommute and equal vector bases square to scalars (+, or 0 as required). We could have done this manually as follows:
e_{1} e_{1} = 0 
because we have chosen to let vectors square to these values. 
e_{1} e_{2} = e_{12} 
as before lets make vector multiplication anticommute so that the vectors will cancel out when a general vector is squared: (a e_{1} + b e_{2})^{2} = 0. 
e_{1} e_{12} = 0 e_{2} e_{12} = e_{2} e_{21} = 0 e_{12} e_{1} = e_{21} e_{1}= 0 e_{12} e_{2} =0 
these are derived from the results above using these rules. Any term with two or more e_{2} terms is zero. 
e_{12} e_{12} = e_{12} e_{21} = 0 
One vector square to zero and the other to +ve: G 1,0,1
Lets say e_{2} squares to zero :
a*b 
b.e  b.e1  b.e2  b.e12 
a.e  1  e_{1}  e_{2}  e_{12} 
a.e1  e_{1}  1  e_{12}  e_{2} 
a.e2  e_{2}  e_{12}  0  0 
a.e12  e_{12}  e_{2}  0  0 
As the above link explains, the table was generated by a computer program from the laws of vector algebra, that is: nonequal vector bases anticommute and equal vector bases square to scalars (+, or 0 as required). We could have done this manually as follows:
e_{1} e_{1} = 1 
because we have chosen to let vectors square to these values. 
e_{1} e_{2} = e_{12} 
as before lets make vector multiplication anticommute so that the vectors will cancel out when a general vector is squared: (a e_{1} + b e_{2})^{2} = a^{2}. 
e_{1} e_{12} = e_{2} e_{2} e_{12} = e_{2} e_{21} = 0 e_{12} e_{1} = e_{21} e_{1}= e_{2} e_{12} e_{2} =0 
these are derived from the results above using these rules. Any term with two or more e_{2} terms is zero. 
e_{12} e_{12} = e_{12} e_{21} = 0 
One vector square to zero and the other to ve: G 1,1,0
Lets say e_{2} squares to zero :
a*b 
b.e  b.e1  b.e2  b.e12 
a.e  1  e_{1}  e_{2}  e_{12} 
a.e1  e_{1}  1  e_{12}  e_{2} 
a.e2  e_{2}  e_{12}  0  0 
a.e12  e_{12}  e_{2}  0  0 
As the above link explains, the table was generated by a computer program from the laws of vector algebra, that is: nonequal vector bases anticommute and equal vector bases square to scalars (+, or 0 as required). We could have done this manually as follows:
e_{1} e_{1} = 1 
because we have chosen to let vectors square to these values. 
e_{1} e_{2} = e_{12} 
as before lets make vector multiplication anticommute so that the vectors will cancel out when a general vector is squared: (a e_{1} + b e_{2})^{2} = a^{2}. 
e_{1} e_{12} = e_{2} e_{2} e_{12} = e_{2} e_{21} = 0 e_{12} e_{1} = e_{21} e_{1}= e_{2} e_{12} e_{2} =0 
these are derived from the results above using these rules. Any term with two or more e_{2} terms is zero. 
e_{12} e_{12} = e_{12} e_{21} = 0 
This is equivalent to dual complex numbers as described on this page.
where the following are equivalent:
G 1,1,0 
dual complex 
e  1 
e1  i 
a.e2  ε 
a.e12  iε 
Nullvectors nonOrthogonal Basis
If all our basis vectors square to +ve and anticommute, then we can choose any mutually perpendicular righthanded basis vectors and the algebra will be the same. Simarly if all the vectors square to ve, but what if some of the vectors square to +ve and others square to ve as in G 1,1,0 ? Somewhere between where they square to +ve and ve they must square to zero: We can generate a Geometric algebra from these null vectors, e0 and eY, as follows:
a*b 
b.e  b.e0  b.eY  b.eY0 
a.e  1  e_{0}  e_{Y}  e_{Y0} 
a.e0  e_{0}  0  1+ e_{Y0}  e_{0} 
a.eY  e_{Y}  1 e_{Y0}  0  e_{Y} 
a.eY0  e_{Y0}  e_{0}  e_{Y}  1 
Can anyone tell me how to derive this?