Sign in to follow this  
Andy Zhuang

Babylon.js vs Three.js for CAD-like product

Recommended Posts

We are planning to start a new project to create a CAD product, which like A360. But we mainly focus on 2D drawings at first step.  The product would display many line segments, circles/arcs and bezier curves. Also have many interactions to manipulate these geometries, for example, edit(move the end points), drag, select, highlight. We also have shape object to group some primitive geomtries and manipulations on the shapes. And we can display the shape with many instances. The different instance have different transform, different color / line width. And hope this can be accelerated through sharing the same geometry buffers(maybe other terms). Other functions: display image or pdf (use pdf.js) as the background, can import dxf/dwg.

I did some investigation in Babylon.js and Three.js. And I am hesitating which I should adopt as our product's graphics engine.

The below is my some conclusions base on my google searching.

Three.js is designed targeting on general purpose.  And as I know, A360 adopt Three.js as the graphics engine. It seems that Three.js is more appropriate for CAD-like product. But some people said that Three.js has more bugs and bad GC (garbage collection).

Bablylon.js use TypeScript (This attract me, because our team also select it as the main language), and has strong GC, and maybe higher performance. However, Babylon.js is designed targeting game engine. I am not sure it is fit for our CAD-like product. 

 

Can anyone can point pros and cons of Babylon.js and Three.js for CAD-like prodcuts more detailed. Thanks very much.

Share this post


Link to post
Share on other sites

Hi, 

I'm using Babylon.js everyday professionnally for CAD-like products and communication applications. I can say there is absolutely no problem using the engine for this kind of apps. However, you cannot today import/export dwg/dxf (you have to go through Blender/3DSMax, or implement the importer yourself).

For your 2D manipulations, you could use canvas2D (which is a 2D engine created to manipulate 2D shapes/sprites with a high performance). I don't think there is an equivalent with Three.js.

Two more reason you didn't thought about:
1. you will develop much faster with Babylon.js, as several useful methods/classes are embedded directly in the engine.
2. The community is VERY reactive, and the core dev team is really dedicated to fix every bug you can find.

Feel free to ask if you have any questions :)

Share this post


Link to post
Share on other sites
16 hours ago, Temechon said:

I'm using Babylon.js everyday professionnally for CAD-like products and communication applications. I can say there is absolutely no problem using the engine for this kind of apps. However, you cannot today import/export dwg/dxf (you have to go through Blender/3DSMax, or implement the importer yourself).

 

@Temechon Very appreciate your replay base on your own experience. Have your CAD-like product been online? Can you give the name or URL if I can take a look? 

About the dwg/dxf importer, we have other solutions. Maybe convert them to pdf/svg at the backend.

16 hours ago, Temechon said:

For your 2D manipulations, you could use canvas2D (which is a 2D engine created to manipulate 2D shapes/sprites with a high performance). I don't think there is an equivalent with Three.js.

Oh, that's great feature! This can save much time for me. I believe this would be higher performance than processing 2D object in 3D space. The feature may be the determining factor for our team to adopt Babylon.js.

 

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.