3D programming

Interactive Fluffy Ball

This is a fun little interactive app that showcases the power of shaders in modern browsers. This looks like one of those Three.js demos, but it is actually written in a cross-platform language called Haxe that is able to compile to different platforms including JavaScript, C++, C#, Java, JVM, Python etc.

Source: Marimo


Viewer Feature: Selective Loading | Autodesk Platform Services

Autodesk has recently launched the latest version of APS Viewer, previously known as Autodesk Forge Viewer, introducing an impressive feature called selective loading. This feature addresses one of the major challenges in managing BIM, which is the immense size of the model. In practical construction projects, an Autodesk Revit file can easily reach terabytes in size. Even after converting the model into SVF/SVF2 format, the data volume that needs to be transmitted to the client remains in the range of hundreds of megabytes or gigabytes. With selective loading, users now have the ability to filter and display only the specific parts of the model they wish to see. This filtering occurs on the server side, resulting in a significant reduction in the amount of data transmitted.

Using this feature you can improve the performance of your application since the model loading time will be significantly faster, or you can implement “saved views” feature, allowing your users to load just a subset of their designs based on previously stored filters.​

Source: Viewer Feature: Selective Loading | Autodesk Platform Services

3D programming

Data Management OSS (Object Storage Service) migrating to Direct-to-S3 approach

It’s no secret that Autodesk Forge uses AWS. But now they made it explicit. Some of the API will be exposing AWS services – in particular S3 – directly.

Source: Data Management OSS (Object Storage Service) migrating to Direct-to-S3 approach


Was Google Earth Stolen?. I recently watched “The Billion Dollar… | by Avi Bar-Zeev | Oct, 2021 | Medium

The Billion Dollar Code is a new mini-series from Netflix that tells the story of ART+COM’s lawsuit against Google, purportedly for infringing their patent in the software (Keyhole) that would later become Google Earth.

One of the key person behind Keyhole wrote the following detailed post, which clearly rebutted the claims:

ART+COM’s patent was invalidated in 2017 because another group, Sarnoff Research Center (SRI) in Palo Alto had shown a similar system in 1994, showing just how obvious these ideas were by 1995. In a stunning irony, the people asserting they “invented” Google Earth were bested by a pre-existing system with essentially the same name and function as theirs.

Source: Was Google Earth Stolen?. I recently watched “The Billion Dollar… | by Avi Bar-Zeev | Oct, 2021 | Medium

3D internet

Yamauchi No.10 Family Office

This is not your typical website. This website from the family office of Nintendo’s founder just brings back the 80s vibes.

It’s nothing short of amazing what you come up with when you’re not bounded by traditional constraints of what a website is supposed to look like.

We are Yamauchi-No.10 Family Office. Our mission is making a contribution to the society through our activities.

Source: Yamauchi No.10 Family Office

Tip: Use browser zoom to zoom out to see more of the action going on.


Autodesk Forge – Section hatches

Autodesk Forge has a nice feature known as section hatches. This feature fills out (or caps) parts of the model that is cut out by the section plane with a hatch pattern. You can see this in action below, when a z-plane cuts across the building:

The addition of hatches helps the viewer to see which parts of the model are cut out.

However, there is a problem with section hatches on some models, such as this:

The left part of the building is wrongly covered by the hatch and there are some weird triangulation problems on the right. This could happen when the meshes in the model is not 2-manifold.

Starting with Forge Viewer v7.35, there is a new option to turn off section hatches. It is located in the Configuration tab under Settings.

When you turn off section hatches, you still get the clipping, but without the potential artifacts:

You can also programmatically enable this behaviour by calling:

viewer.prefs.set(Autodesk.Viewing.Private.Prefs3D.DISPLAY_SECTION_HATCHES, false)

As a side benefit, performance is improved slightly with section hatching turned off.

If you are interested in the algorithms behind filling (or capping) of clipped mesh – though not necessarily the one implemented by Forge – you can refer to this and this.


A first look at Unreal Engine 5 – Unreal Engine

As usual, Unreal’s demo are always super impressive. New features in Unreal Engine 5: unlimited polygon, real-time global illumination. Other than realistic animation, these are like the holy-grail of real-time graphics. We’ll have to wait till 2021 to see if they can deliver these in actual production.

The following images are not 3D renders. They are screenshots from the actual real-time demo.

Nanite virtualized micropolygon geometry frees artists to create as much geometric detail as the eye can see. Nanite virtualized geometry means that film-quality source art comprising hundreds of millions or billions of polygons can be imported directly into Unreal Engine—anything from ZBrush sculpts to photogrammetry scans to CAD data—and it just works. Nanite geometry is streamed and scaled in real time so there are no more polygon count budgets, polygon memory budgets, or draw count budgets; there is no need to bake details to normal maps or manually author LODs; and there is no loss in quality

Source: A first look at Unreal Engine 5 – Unreal Engine


Activists created a 12.5 million block digital library in ‘Minecraft’ to bypass censorship laws (MSFT) [ARTICLE] – Pulse Ghana

Activists created a digital library in Minecraft. There are some criticisms about the practicality of this movement, but you cannot deny that the library building is very impressive – the designers have put a lot of thought into each “wing”.

Reporters Without Borders created “The Uncensored Library” within “Minecraft” as what it calls a “loophole to overcome censorship.” The digital library in an open “Minecraft” server has articles and information that has been censored in many countries, but is accessible through the game.

Source: Activists created a 12.5 million block digital library in ‘Minecraft’ to bypass censorship laws (MSFT) [ARTICLE] – Pulse Ghana

3D gis

Comparing Google Maps 3D with Singapore’s OneMap3D

OneMap3D is envisioned to be “Asia’s first, open-source 3D nationwide map”.

OneMap 3D (sic) will enable users to orient themselves in a three-dimensional representation of the real world, empowering them to navigate around identifiable landmarks, walkways and even void deck spaces. OneMap 3D will first be launched to developers by the end of 2020.


  1. Full disclosure: we are enrolled in OneMap3D Developer Programme and are bounded by the NDA. The following content does not reveal anything that is forbidden by the NDA.
  2. It appears that earlier articles use the term “OneMap 3D” and recent ones “OneMap3D”. For consistency we will use the term “OneMap3D”.


In 2014, Singapore announced the launch of the Smart Nation Initiative, of which Virtual Singapore is a key feature. One of the products of Virtual Singapore is the island-wide 3D map of Singapore. Today, the custodian of this 3D map is the Singapore Land Authority (SLA), and the platform in which this data will be available is called OneMap3D.

This article primarily focuses on the comparison of 3D model available on Google Maps and OneMap3D. Other aspects such as API capabilities etc are not explored.

Google Maps 3D

When Google Maps was launched, the world of digital mapping was introduced to the masses. It began with making tile-based maps accessible through the browser. Then Google acquired a company called KeyHole and took over the product to be launched as Google Earth, a desktop application. Google Earth was its foray into interactive 3D mapping – fulling Neal Stephenson’s vision in a round-about way since the original KeyHole application was said to be inspired by the author’s novel.

Nowadays, the line is blurring between Google Maps and Google Earth since the former is capable of showing 3D content as well. On your modern desktop browser, just turn on Satellite mode and if the area happens to have 3D content it will be shown. Singapore is lucky enough to have this feature enabled for a large part of the main island. Our comparison will be based on the 3D content available through Google Maps.


OneMap3D is envisioned to be the upgrade from the existing OneMap service provided by SLA. By enrolling in the OneMap3D Developer Programme, we are given access to 1) 3D building models, and 2) API to access 3D models.

The 3D building models are provided in CityGML version 2 format. For those who are unfamiliar, “CityGML is an open data model and XML-based format for the storage and exchange of virtual 3D city models.”. It is both an OGC as well as an ISO standard.

The tools for processing CityGML are quite lacking unfortunately, as commercial support is not high. For the purpose of this comparison, we will import CityGML files into 3DCityDB, and export it out as a COLLADA file.

First Look

Google Maps
OneMap 3D

At this zoom distance, both models in Google Maps and OneMap3D look quite good. It may not be apparent, but the water tanks on the rooftops for OneMap3D are modelled separately.

Another Example

Google Maps
OneMap 3D

For a more articulated building, OneMap3D clearly shines. One can see small features such as the cross on the rooftop and words on the facade can be read.

Model Representation

Google doesn’t reveal how its 3D mapping content is constructed but one can try to guess. One FAQ for Google Earth – which probably shares the same data sources as Google Maps – says that imagery collected includes “satellite, aerial, 3D, and Street View images” from “providers and platforms”. The fusion of all these data into a model should be largely automated and powered by their proprietary algorithms.

Based on how 3D contents are streamed in Google Maps, they should be using some form of progressive mesh techniques.

OneMap3D models are based on buildings and each building is provided as a CityGML file. The likely data sources include LiDAR, aerial photography, site survey, official building footprint, etc. It is apparent that the models are handcrafted through some modelling software and converted to the designated format.

OneMap 3D building mesh


As with most things, there are pros and cons to either modelling approaches. Here is a non-exhaustive comparison:


Pros Cons
Clean modelColors/textures can be inconsistent
OptimizedTextures can look repetitive
Sharp even when zoomed inSubject to human errors
Small features can be seenLabour intensive
Ground-level details can be seen
Inconsistent texture quality between roof and facade
Ground level details can be seen

Google Maps

Pros Cons
Consistent look and feel“Melted building” syndrome when close-up
Scalable to large areasEdges are not straight
Occasional artifacts
Building not separated from terrain mesh
Shadows are not removed
Visual artifacts

More OneMap3D Examples


OneMap3D represents the herculean effort of creating and maintaining an up-to-date database of 3D building models for the whole of Singapore.

Google Maps approach on the other hand, allows it to scale to potentially any city in the world. And it will only get better with newer data acquisition techniques and algorithms.

Beyond 3D representation, however, OneMap3D’s models also contain rich semantic information that allows it to be used in different types of applications, eg. computing roof surface area. And since buildings are standard 3D assets, they can be used in various types of 3D applications such as VR, gaming, rendering etc. There are clearly pros and cons of either approach and we are excited to see the types of applications that OneMap3D will bring when it officially launches end of the year.

Edit: Contact me if you would like to know more about converting OneMap3D data to other commonly used 3D formats.


WebGPU demos

The dust has yet to settle on WebGL2 and we’re already looking at a replacement…
Apple is pushing for WebGPU, which is modelled after Metal, their graphics library for iOS and macOS.

Hello World Triangle

Here’s another view about what’s wrong with WebGL/WebGL2.

Source: WebGPU demos