cut and paste into above cell
<pre>
Algebra(3,0,1,()=>{
var gridX = Array.apply([],{length:21}).map((x,i)=>[1e123+2e012+1e013+(i-10)*.2e023,1e123-2e012+1e013+(i-10)*.2e023]);
var gridY = Array.apply([],{length:21}).map((x,i)=>[1e123+2e023+1e013+(i-10)*.2e012,1e123-2e023+1e013+(i-10)*.2e012]);
var orig = 1e123-1e013;
var p = 1e123+1e013+.65e023-.9e012;
var p2 = 1e123+1e013-1.35e023+.8e012;
var p3 = 1e123+1e013+1.35e023+1.1e012;
var p4 = p.slice();
var /*camera=1+0e0, */ t=0;
debugger;
console.log('line : ',(orig&p2&p3)^(p&p2&p3));
var el=this.graph(()=>{
t = t+ 0.001;
//camera.set(Math.cos(t)+Math.sin(t)*1e13);
return [orig,"origin in 3D",0x123456,gridX,"gridx",gridY,"GRIDY",0x4444cc, p,"point in 2D",orig&p,"vector in 3D",0xffcccc,[orig,p2,p3],0xCC4444,"bivector in 3D",p2&p3,"line in 2D"]},{gl:true, animate:false}); //
el.style.width='100%',el.style.height='500px'; return el;
})
</pre>