Chinese clients demand the reuse of existing model assets, lightweighting without losing core information, and multi-format integration. Industrial parks/buildings/municipal projects have the highest requirements for BIM and oblique photogrammetry, while manufacturing/energy projects have the highest requirements for CAD/equipment models:
Supports importing mainstream BIM formats: Revit (.rvt), Tekla (.ifc/.tek), Bentley (.dgn). After import, the model’s hierarchical structure, component attributes, and material information are preserved, and the latest IFC 4.0/5.0 standards are supported.
Supports importing and lightweighting oblique photogrammetry/point cloud models: Imports osgb, las, and ply formats. After lightweighting, the number of triangles can be compressed as needed (e.g., from hundreds of millions to tens of millions), preserving core features of terrain and building outlines, and supporting LOD (Level of Detail) loading.
Supports importing industrial/mechanical models: Compatible with 3ds Max (.max), MAYA (.mb), SolidWorks (.sldprt), and UG (.prt). 4. Supports GIS/CAD format fusion: Interacts with SHP, DWG, and DXF geographic information/CAD drawings to achieve precise registration of GIS base map + 3D twin model (latitude/longitude/planar coordinate alignment, error ≤ 0.5 meters);
Supports incremental updates after model lightweighting: After modifying the BIM/oblique photogrammetry model, there is no need to re-import the entire model; only the modified parts are updated, avoiding repeated loading of large scenes;
Multi-model fusion management: Supports fusion of BIM, oblique photogrammetry, equipment models, and GIS base maps in the same coordinate system, achieving “one map” management, and allowing individual display, layering, and scaling of each model.
As far as I know, most developers in China use Three.js combined with open-source community libraries to achieve the above requirements, but Babylon.js doesn’t seem to have as many open-source projects. Therefore, I hope you can leverage AI to enable Babylon to natively support these…
I think many situations aren’t suitable for using Babylon.js, or even for doing things on the web.
But speaking of open source, you might consider Blender (I myself use Blender to write plugins that utilize various open-source libraries for certain tasks).
@BraveMomo you can contact me in DMs, I’m specialized in 3D asset optimization for the web and we can talk about your needs if you want something specific
Sadly I would say that importing proprietary file formats like Revit/Bentley for open source libs like babylon.js would almost be impossible without something like a server containing a licensed conversion software due to copyright limits.
But in case of ifc, there is web-ifc that parses it. All you need to do it create BABYLON.Mesh from it.
Actually, this isn’t a question of whether to use three.js or not.
To handle this kind of task, rendering engines like three.js or Babylon.js are used only to deal with meshes that are drawn on the screen. In reality, a separate kernel is required to perform the actual geometric calculations and handle user interactions.
For example, chili3d uses the OpenCascade kernel, and three.js is merely responsible for displaying the meshes generated by OpenCascade and handling user input.
In fact, at my current workplace, I developed a custom loader to load CAD formats into Babylon.js, and I also built loaders without any issues for analysis meshes used in the CAE domain.
Loaders for data such as CAD are difficult to include in rendering engines like Babylon.js. This is because, fundamentally, these formats do not actually contain mesh data; they are converted into meshes only at the moment they need to be displayed for rendering.
Another reason is that mechanical engineering–related 3D formats generally have very few open-source loader implementations, and many software companies maintain their own proprietary, closed-source implementations that have evolved over a long period of time.
Therefore, making everything you requested fully possible is, realistically speaking, not feasible.
I think what BraveMomo emphasis on is the “Open Source Community“ other than the engine itself (be it ThreeJS or BabylonJS). And this situation is actually not specifically limited to China and Digital Twin.
The original reason for us to choose BJS over 3JS is its ease of use and better internal facilities (core team, core features etc.). And we don’t regret of the decision.
It is always good to keep the engine clean and concise. But nowadays, lots of person/company don’t develop APPs based on merely an engine from scratch. It will save a lot of time in case some “add-on“ assemblies exists. In that case, 3JS have a noticeable advantage.
Take an example to support 3DTile map service (e.g. from Google 3D MapTile), you can find 10+ projects from Github by big and small company/person (e.g. NASA, TIMES, etc.) but none from BJS. I have to develop/port one of the project to BJS. And it is not a pleasant job (these modules are highly coupled with 3JS classes and workflow). And this is not the end of the issue, I have to maintain the code in the foreseeable future.
It is infeasible to provide equal/larger projects with BJS. But i think it would be helpful to identify a number of “components” that have major public interest (Digital Twin or BIM/Map Toolbox could be one of them). These components will not in the BJS engine itself, but provide user a friendly and efficient start point to build up their own App. And even more helpful, if these core external components can be led and maintained by the BJS core team, the quality is assured. (Take an example of IfcOpenShell with BlenderBIM/Bonsai)
That on the other side will encourage more developers (or AI agents now) from Open Source community to choose BJS and start to contribute and further grow the ecosystem.