jump to navigation

XB PointStream 0.4 Released! July 28, 2010

Posted by Andor Saga in Arius3D, Open Source, point cloud, webgl, XB PointStream.
3 comments

We’ve released XB PointStream 0.4! Have a WebGL-enabled browser? Check out the demos! Or check out our video.


What is XB PointStream?

XB PointStream is a JavaScript library which will emulate Arius3D‘s PointStream viewer. It is designed to quickly render a large amount of point cloud data to the <canvas> tag using WebGL.

Features Landed

In this release we added streaming support, you no longer have to wait until the entire point cloud is downloaded before viewing it. Also, there was an issue rendering on some versions of OS X and Linux, which we fixed. Our PSI reader is coming along and has been pushed into our Github repository.

Get Involved!

If you’d like to get involved in development, testing or if you simply want to suggest ideas, visit us in the #seneca channel in irc.mozilla.org. Or file some tickets on our Lighthouse page. If you wanna get your hands dirty and hack some code, fork our repository from Github.

Advertisements

Does My Browser Support WebGL? July 17, 2010

Posted by Andor Saga in Open Source, webgl.
4 comments

Sometimes I want to know if my browser supports WebGL–without loading a large and fancy demo or digging through about:config.

www.DoesMyBrowserSupportWebGL.com will give me a straightforward answer. This is especially useful if your desktop looks anything like mine:

Is WebGL enabled? Is this new demo broken? Didn’t I just do an update? Am I using the right profile? This site expunges one variable to investigate.

Yay or Nay.

Compensating for WebGL readPixels() Spec Changes July 14, 2010

Posted by Andor Saga in Arius3D, Open Source, point cloud, Processing.js, webgl, XB PointStream.
8 comments

I’m currently working on two projects which, in some way use WebGL‘s readPixels(). In Processing.js it is needed when running ref tests with 3D sketches. In XB PointStream it is used to get a screenshot of a point cloud on the user’s request.

In my last blog I wrote about some trouble I had calling readPixels(). It worked on Minefield and Chrome, but not on WebKit. Benoit Jacob mentioned the problem could have been due to a change in the WebGL specification. I re-checked the spec and sure enough, readPixels() was changed. To support both methods (old and new), I needed to write a work-around. It didn’t take long to come up with something that’s cross-browser. Here it is:

var arr = ctx.readPixels(0, 0, w, h, ctx.RGBA, ctx.UNSIGNED_BYTE);
if(!arr){
  arr = new WebGLUnsignedByteArray(w * h * 4);
  ctx.readPixels(0, 0, w, h, ctx.RGBA, ctx.UNSIGNED_BYTE, arr);
}

If you want to see it in action, check out our 3D point cloud gallery.

XB PointStream 0.3 Released! July 13, 2010

Posted by Andor Saga in Arius3D, Open Source, point cloud, webgl, XB PointStream.
4 comments

We’ve released XB PointStream 0.3! Have a WebGL-enabled browser? Check out the demos! Or check out our video.

Features Landed

In this release, we decided to add some elementary features such as mouse and keyboard support, but we’ve also added interesting bits like toPNG(), resize() and attenuation(). With toPNG() you can create a static 2D image from the 3D point cloud. resize() simply resizes the canvas and attenuation() along with pointSize() allows you to finely tune the point attenuation desired for your point cloud.

Bugs!

While working with Minefield, Chrome and Webkit, we’ve seen several inconsistencies. One major issue is toPNG() doens’t work on Webkit because readPixels() now fails. But it used to work! Another issue is rendering anything using OS X 10.6 on an iMac. The points come out looking like garbage. This happens both on Minefield and Chrome while Webkit refuses to render anything. Interestingly, on the same machine running Windows everything looks good. And I have no problems on my MacBook Pro running 10.5… We certainly have a long road ahead in terms PointStream being cross-browser.

Get Involved!

If you’d like to get involved in development, testing or if you simply want to suggest ideas, visit us in the #seneca channel in irc.mozilla.org. Or file some tickets on our Lighthouse page. If you wanna get your hands dirty and hack some code, fork our repository from Github.