TypeScript WebGl Engine