3D Viewer Project

We are just going into Beta with a commercial vertical market 2D/3D CAD application that uses OCC for 3D operations and a proprietary 2D drawing library. We want to allow our user community to share 3D models of their work on our social networking site and have investigated numerous 3D viewers that can run in a web page. We also looked at the e-Viewer from OCC and when we found the currently posted version was defunct we queried OCC and found they are offering an updated viewer in the near future.

After examining the licensing options and costs for the OCC e-Viewer and other viewers in the market we have decided to develop our own simple OCC based viewer and contribute it to the open source community. I’m starting this thread to encourage folks to contribute ideas and code to the effort. Once we have something that works we will create a project on SourceForge.net.
Our current implementation guidelines include:
- Use static linking to get the smallest footprint app possible.
- Eliminate environmental variables to avoid conflict with other OCC apps.
- Provide ActiveX and Plug-in versions to support a wide range of platforms.
- Focus on Windows platform for now as it’s easier to get the Active X done that way.

FWIW, our current commercial app uses static linked OCC libs and no OCC environmental variables. It is written in MFC and is pretty Windows centric. This has worked really well for us as our app is Windows specific.

OTOH, we have a lot of experience using Qt to develop cross-platform applications and it would be nice to develop a cross platform viewer using Qt. Any comments specific to Qt and web browser Active X controls and/or plug-ins would be welcome!

If anyone has successfully created ActiveX controls for IE and/or Plug-ins for the other popular browsers using any toolchain, please give us pointers on what has and hasn’t worked.

Please do not share e-Viewer code with us as this project needs to be independent of the OCC effort.
Let us know your thoughts.

Tim

Stefan Boeykens's picture

If at all possible, I would suggest to try to be platform-independent. I have investigated some of the web3d possibilities for our CAAD classes with students of architecture and have reasonably good results using Java applets (created in Processing) for fairly simple geometry and the Unity3D game engine for full immersive environments.
Processing is Open Source and based on Java and runs well on most platforms and browsers.
Unity3D is proprietary and commercial, but runs well on Windows and OSX in most current browsers.

If this is only a 3D model (and drawing) viewer, why don't make a generic viewer for static geometry? You would rely much less on OCC. For a viewer, a simple mesh visualization might be sufficient.

The approach Bricsys takes using Vondle is doing the model processing on the server and serve streaming, tiled images to the webbrowser of the client, with a custom Java applet. They investigate how to do this for 3D as well, not unlike the approach from Autodesk with Freewheel.

That said, with all the graphics power available in consumer computers, full 3D in a web applet is feasible. Not trivial ;)

If at all possible, provide an alternative to ActiveX controls. Not everybody is still on Windows... and not everybody is using Internet Explorer.

tmay's picture

Stefan
Thanks for the comments! We lean toward the client side processing as server side processing is deadly on larger sites. We want to use OCC primarily because of the usual "glitchs" in format interpertations and implementations across different libraries. There are numerous 3D Viewer web plug-ins and ActiveX controls so we are not charting new ground.

Check out http://www.infograph.com/products/viewers.asp for an example of a really nicely implemented 3D Viewer for STP files that is free for non-commercial use.

We will build both an ActiveX control for IE and a Plug-in for the other browsers. It would make sense to make the plug-in platform independant.
Tim

plehal's picture

Any  updates on this????

Forum supervisor's picture

Some information related to this question.

Native ActiveX / NPAPI plugins (as well as Java-based applets) is an outdated technology.
Google Chrome has been already removed NPAPI support and Mozilla Firefox is going to remove this technology till the end of '2016.
And mobile browsers lack this functionality from the very beginning.
Internet Explorer 11 (but not Microsoft Edge Browser!) still supports ActiveX plugins, but this does not make much sense nowadays.

So, it does not worth looking in the direction of native browser plugins today. This is one of the reasons why e-Viewer evolution has been frozen although we would be glad giving it a new live based on new technologies.

3D viewer can be efficiently provided in two reasonable ways:

  • In browsers with using modern web technologies (e.g. WebGL) without plugins.
  • As a standalone application for target platform(s).
    Allows better optimization and flexibility for working with client data without server, but less portable.

You may also find that OCC has experience in both these domains:

Best Regards,

FSR