Online Geometry Viewer Infrastructure

Online Geometry Viewer is a project by BRL-CAD that aims at having a completely open source Online 3D Geometry Viewer. OGV started as GSOC 2013 project by Harmanpreet Singh. This page is meant to host the details about infrastructure on which the OGV will be based. Currently OGV is in plain PHP but there have been ongoing discussions about using some framework instead. Given below are the various options to consider for Online Geometry Viewer.

Three.js[edit]

For viewing geometry threejs is being used. It's a wonderful 3D library based on webGL and is in active development. Another worth mentioning is scenejs. The scenejs is mentioned for completeness, there is no plan to shift from threejs yet. The choice is primarly to be made on server side technologies.

Node.js[edit]

Node.js is a platform built on V8, (Google's open source javascript engine ). It uses an event-driven, non-blocking I/O model that makes it lightweight and efficient, perfect for data-intensive real-time applications that run across distributed devices. [from nodejs.org]

Node.js Frameworks[edit]

The (almost) complete list of notable node js frameworks is at nodeframework.com. We can either choose

  • a MVC backend framework like express, geddy or sails. Geddy and sails are based on Ruby on Rails methodology whereas express is more like sinatra. (a good comparison between geddy and sails is here or
  • a full stack web framework like derby. Full stack frameworks is the place where nodejs shines. A one single framework in one single language that deals with everything from front end to back end making things easier for the developer.


PHP[edit]

  • Laravel is a PHP based popular framework, for development of MVC applications. We will still have to go for Javascript (and it's frameworks) for front end.
  • Mediawiki is in PHP and we have a plan for building mediawiki extension for embedding 3D CAD models in wiki articles. So we will be dealing with PHP anyways, even if we choose to have nodejs.

Note: There are many other frameworks and technologies, but above listed were currently proposed in mailing list discussions.