start implementing three.js inspired api