Jump to content

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


Andy Zhuang
 Share

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.

Link to comment
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 :)

Link to comment
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.

 

 

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...