Harp.gl, open source 3D globe with map tiling

The HERE company was making a nice open-source 3D globe mapping library called Harp.gl, built on Three.js, however they went closed source.

I have forked the project and revived it including the website, documentation, and awesome examples!

Harp.gl, 3D globe mapping

Here are few screenshots (but try demos, more fun!):


This looks like quite samaritan-ish. Thanks for reviving the project. Do you have info why they decided to go closed-source.

No fun for me, I guess.

What is samaritan-ish?

They went closed source because they decided that was best for their business, for whatever reasons.

That particular demo is bad. Not sure what I broke in getting it all revived. Skip that one for now, as it is not representative of the end usage. The globe projection demo works pretty well for example. If you play long enough, I think you’ll find some edge cases.

This is the act done by a good Samaritan*, and I used it because of this:

Yes, the other demos work fine, there are some minor glitches from time to time, but they could be ignored. It might have been hard to revive someone-else’s software!

* A definition of Samaritan:

1 Like

Incredible usefull!! Thanks @trusktr so much for reviving this, I surely will be giving it a try :clap:t3:

1 Like

Oh! Why thank you! :slight_smile:

Yeah, namely with the camera. Looks like it renders with two cameras, one for near stuff, one for far (not 100% sure, but that’s what the glitches look like)?

Would love to get it updated to latest three.js next, and to understand how rendering works to iron out any issues.

No problem! Let me know if you get any hunches about any issues, or missing features.

I have upcoming plans to make a Lume HTML interface for it, so that it will be possible to embed globes/maps in Lume HTML scenes, and for compatibility with React, Vue, Angular, Svelte, Solid, jQuery, etc (anything that manipulates DOM). It will look something like the following:

<lume-scene webgl>

  <!-- Earth globe, default settings -->
  <lume-harp-map position="...">

    <!-- place any 3D objects relative to globe using a special element that accepts geo coordinates -->
    <lume-harp-location latlonalt="...">

      <lume-gltf-model sec="king-kong.gltf" position="...regular coordinates..."></lume-gltf-model>



  <!-- decorate the rest of the 3D world (universe, in this case!) -->
  <lume-sphere texture="moon.jpg" ...></lume-sphere>
  <lume-sphere texture="sun.jpg" ...></lume-sphere>


Another roadmap task is to add Google’s new 3D map tiles!