Cesium talk at Philly Game Works

I meant to send this out earlier, but I’ll be giving a talk tonight at the Philly Game Works meetup at Microsoft in Malvern, PA. It’s definitely different than the traditional Cesium talk because the first half is going to concentrate on WebGL and web-gaming in general, followed up by a more traditional Cesium overview. I’ll be sure to post the slides later for anyone interested.

I also wanted to mention that we’re always happy to have Cesium users present at the various mapping, GIS, or WebGL meet-ups that are happening all over the world. If you ever show off your Cesium app at a meet up or conference, or otherwise give a talk on Cesium, let us know. We’re happy to link to slides or video on our publications page or even feature the app on the showcases page.



It would be nice to have more games that use Cesium.

Having pickTriangle from the nm branch


Merged to the master branch would be nice.

Example use of pickTriangle


From that it would be easy to get terrain normals which many games would find useful


Currently Monster Milktruck performs 4 nearby getHeight samples just to get the normal


“// TODO: would be nice to have globe.getGroundNormal() in the API.”

Hi Hyper,

If you’re up for it, I’d definitely support you extracting that from the nm branch into a separate branch and opening a pull request for it.


Thanks Kevin! I think I need to dig a bit deeper to fully understand what’s going on first. I threw both Globe.prototype.pick and Globe.prototype.pickTriangle into http://text-compare.com/ and there is only 1 line changed and 1 line added

intersection = sphereIntersections[i].data.pick(ray, scene, true, result);
changed to
intersection = sphereIntersections[i].data.pickTriangle(ray, scene, true, result);

and this was added before the break statement
intersection.tile = sphereIntersections[i];

GlobeSurfaceTile.prototype.pick //cycles through the triangles of the tile and performs IntersectionTests.rayTriangle onto each of them

returns intersection, but not with the .v0,v1,v2 verticie properties

So I’d have to also create GlobeSurfaceTile.prototype.pickTriangle , and it would be the same as GlobeSurfaceTile.prototype.pick except it would tack on the .v0 .v1 .v2 properties to the intersection object. I assume intersection starts off as a Cartesian3 but with some other properties added in?

But no changes to https://github.com/AnalyticalGraphicsInc/cesium/blob/master/Source/Core/IntersectionTests.js need to be done.

IntersectionTests.rayTriangle //no changes
rayTriangle //no changes

Yep, it’s an ugly copy/paste job. It’s probably possible to eliminate the duplication by implementing pick in terms of pickTriangle.

Ya that’s a good idea. Add a boolean parameter to pickTriangle and call it say allData. Then pick would simply call pickTriangle with allData set to false, only getting the intersection and not the extra properties: vertices and tile.

Hi Matt,

Would love to have Cesium presented at some point over the next year at our Maptime Cape Cod Meetup Group. Could I try to coordinate that with you as I am 1 of the co-organizers? Personally, I’m just starting to get a sense of possibly incorporating CesiumJS into my workflow…I’m sure others in the geospatial community here on the Cape, Martha’s Vineyard, Nantucket and southeastern MA would be interested.



Hey Shawn, I’m sure we can work something out. I’ll coordinate with you offline.