GSoC/GCI Archive
Google Summer of Code 2015

BRL-CAD

License: GNU Library or "Lesser" General Public License version 2.0 (LGPLv2)

Web Page: http://brlcad.org/wiki/Google_Summer_of_Code/Project_Ideas

Mailing List: http://brlcad.org/wiki/Mailing_Lists

This year, BRL-CAD is participating as an umbrella organization with several other open source CAx communities including STEPcode, LibreCAD, OpenSCAD, and LinuxCNC.

Our umbrella community has approximately 20 developers that actively participate in the open source project on a full-time or greater basis. There are more than a hundred community contributors, developers, modelers, artists, and engineers that are actively engaged on an ongoing basis.

The BRL-CAD community is represented and developed by a consortium of individuals in the larger open source CAx community from academia, government, and private industry. BRL-CAD's primary development focus areas include:

  • CAD (design),
  • CAM (manufacturing),
  • CAE (engineering),
  • solid modeling (analysis), and
  • computer graphics (visualization).

CAD requirements are fundamentally different from those of content modelers (such as Blender, Maya, and 3D Studio) used for animation, gaming, and film purposes. BRL-CAD's primary requirements support a separate industry where commercial products like AutoCAD, Pro/Engineer, and CATIA dominate. See http://ftp.brlcad.org/Industry_Diagram.png for a visual overview of where BRL-CAD currently fits within the various CAx industries.

BRL-CAD is a powerful cross-platform open source 3D solid modeling computer-aided design (CAD) system.  In includes interactive solid geometry editing, ray-tracing support for rendering and geometric analysis, image and signal-processing tools, system performance analysis tools, a robust high-performance geometry engine, and much more. It's more than a million lines of code, 400+ binary applications, dozens of libraries, and hundreds of staff-years invested. It's in use by more than 2000 companies and is downloaded more than 10k times a month. BRL-CAD has been under development for more than 30 years (since 1979) and has the world's oldest source code repository.

BRL-CAD reached out to encourage broader community cooperation and to help foster collaboration. Our vision is to improve the state of open source CAx by increasing awareness, encouraging discussion, creating useful reusable functionality, and working together.  Our umbrella collaborators are as follows:

  • STEPcode implements the de-facto ISO standard for CAx data exchange.
  • LibreCAD is a cross-platform 2D drafting CAD system.
  • OpenSCAD is a solid 3D modeling with a rich syntax for programmable geometry.
  • LinuxCNC provides computer control of machine tools such as milling machines, lathes, 3d printers, and robots.

We're in the process of establishing a formal non-profit umbrella organization.  This is likely the last year we will apply as "BRL-CAD".  In the future, we will be under "The OpenCAx Association".

Projects

  • Command-line Editing NMG and BoT Data-structures in BRL-CAD This project will expose some of the low-level NMG routines to a command-line interface. Users will be able to add and remove various parts of the NMG data structure, such as regions and shells, along with manipulation of vertices, edges, and faces. A similar set of command-lines will allow for manipulation of "Bag of Triangles" (BoT) data-structures. Users will see the results displayed in either MGED or Archer.
  • G to POV-Ray Geometry Converter The project involves exporting the database of .g file into .pov file. Project is on geometry conversion of BRL-CAD into POV-Ray. Converter is named as g-pov( similar to exiting geometry converters of BRL-CAD ).
  • GPU Accelerated Ray Trace Rendering for BRL-CAD I propose to design a new, higher performance, parallel implementation of the ray-tracing rendering component which can take advantage of the processing performance of GPUs. The idea is to minimize branch divergence and maximize the used processor capacity to render scenes more quickly.
  • Object Oriented C++ Geometry API This project aims at improving BRL-CAD’s Geometry Engine (which provides a clean and easy to use API for BRL-CAD's libraries and binaries) - by adding functionalities to the present primitive classes in the core C++ interface. The project is divided into two parts : 1) Adding functions for finding Volume and Centroid of the primitives 2) Adding functions for finding Surface Area of the primitives
  • OGV Proposal: Interface and Back-end Initial HTML pages started from having <p> tags, then <img> and now is the era of audios, videos and also as recent as .gifs. There have been a lot of tools and technologies developed in the past few years that work behind the scenes to render objects. These technologies allow us to manipulate and view 3d graphics in the browser. OGV is a potential platform to showcase 3D designs to a large audience to provide inspiration to a huge target audience.
  • Online Geometry Viewer (OGV) OGV stands for online geometry viewer, a web application that aims to give 3d graphics same status in web as 2d images, videos or multimedia. It has been worked upon from 2 years and this year I am improving it further. Enhancing it, and making it better than ever.
  • SCAD lexer for QScintilla Editor This project aims to make lexer specifically for Openscad's SCAD language. Currently, QScintilla is using CPP lexer, which cause syntax problem as CPP language is very large as compared to SCAD language of OpenSCAD. With this, some scintilla and GUI related issues will also be solved.
  • Synchronize Wiki with Docbook BRL-CAD has more than a million words of documentation (thousands of pages) in a variety of formats. Their long-term goal is to consolidate as much as possible into the Docbook format so that it can be more directly managed by revision control system and integrated with the source code. The main challenges are: Merge the all docbook docs with website. Provide the online editing to user. Provide admin control to verify the changes. Provide the patch or commit approaches to handle the changes.
  • X3D Importer Geometry conversion is a very important aspect for every CAD software as it is the basis for CAD data exchange between various CAD softwares. BRL-CAD has dozens of importers and exporters but this does not include support for X3D file import. This project seeks to implement an X3D importer for BRL-CAD and would rely on using the FreeWRL's X3D parsing library for this task. FreeWRL is an open source compliant VRML/X3D browser which is multi-threaded, written in C, and uses OpenGL for rendering.