GSoC/GCI Archive
Google Summer of Code 2014


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

Web Page:

Mailing List:


This is the place to be if you love or want to learn more about computer graphics, solid modeling, 3D geometry, CAx (CAD/CAM/CAE/etc), 3D printing, ray tracing, high-performance computing, and more.

More importantly, your chances of getting selected for GSoC are fantastic if you write a solid proposal (no pun intended) and get to know us. We usually have more mentors than students. Just don't be scared off by the terminology; we have projects for all skill levels.

applicants: GET STARTED HERE

This year, BRL-CAD is working in coordination with several other open source CAx communities to help encourage cooperation and foster collaboration. Apply with BRL-CAD to work on:

OpenSCAD: Rich syntax, programmable geometry. LibreCAD: Specializes in 2D CAD modeling, drafting, drawings. STEPcode: File format on steroids, the standard for geometry.

BRL-CAD has been under development for more than 30 years (since 1979), consists of more than a million lines of code, and has the world's oldest source code repository! Become part of that legacy.

Our community vision is to improve the state of open source CAx by increasing awareness, encouraging discussion, creating useful reusable functionality, and working together.


  • Benchmark Performance Database BRL-CAD Benchmark Suite has been used over the years to analyse and compare a system's performance based on certain parameters. The goal of this project is to deploy a database and visualization website that provides multiple mechanisms to add new benchmark logs into the database and provide various forms of visualizations for the aggregate data.
  • Embedding a framebuffer window The purpose of this project is to create a new cross platform Qt framebuffer and embedding a framebuffer window in the actual Qt display manager. I have chosen this project in order to have a fully functional display manager in Qt.
  • LibreCAD Kernel Kickoff A CAD kernel is one which manages the various operations such as scale, move, copy, trim, rotate. It manages the entities, attributes of entities and the data/information of the entity. It also manages the way the data is stored in memory and how the data will be written to a file (file format) or stored in a database. This project will extend the new completely rewritten kernel so as to stand as the base for the new LibreCAD.
  • Materials Database This project is all about writing a MediaWiki Extension which would allow users to add, delete, update, search, import, export the properties or traits of materials in a methodical manner such that those can be retrieved effortlessly.
  • Mesh Library Cleanup BRL-CAD has an extensive n-manifold (NMG) polygonal mesh library presently embedded within LIBRT. This part in BRL-CAD runs good but not perfect, for it is far from, as is expected, stable, rubost and easy-read. Sometimes it causes some awkward performance problem and some algorithm based on current NMG is inefficient. The purpose of this project is to clean, validate and verify relevant source code about NMG, and then add the missing Euler Operation to it.
  • Object-oriented C++ Geometry API It’s divided into two parts, independent of each other. The first part involves the migration of the coreInterface into a geometry kernel, with the second one consisting of adding the primitives agreed upon into the kernel.
  • Online Geometry Viewer HTML 5 has brought new names to the family. With Canvas and WebGL we can access and manipulate graphics in browser like never before. Online geometry viewer uses these cutting edge technologies to share, and view 3D geometry online without use of any third party plugins.
  • Openscad UI Brushup The present Openscad user interface is just a window splited into three parts- a code editor, rendered object and a console. Under this project, interface will be brushed up by removing existing bugs and adding new features.
  • Python Geometry : Python Bindings for BRL-CAD Geometry This project aims at wrapping BRLCAD primitives in python. Python-BRLCAD is an ongoing effort to wrap BRLCAD primitives into python. Further this project will follow an agile methodology of wrapping the primitives with tests and examples.
  • STEP Libraries: Improving Thread Safety and Performance A STEP-File is the most widely used data exchange form of STEP. These files are often huge and are heavily resource consuming when being imported. The performance can be improved by using multi-threading. But before doing that, it must ensured that the STEP libraries are thread safe or else we might run into hard to debug data races. Apart from that, some small tweaks can also be done to increase the performance of the single threaded code itself.