Google Summer of Code/Project Ideas
The list of possible projects below should serve as a good starting point for new developers that would like to get involved in working on BRL-CAD. The ideas below range from the very hard and math intense to the very easy, feel free to scale the scope of the project up or down as needed. The suggested project ideas below are merely starting points. In addition to those below, you may also want to consider some of these ideas.
A detailed articulate (i.e. excellent) proposal that has been discussed with us beforehand will generally trump any listed priority. Please do contact us (IRC or brlcad-devel mailing list) if you have any questions, corrections, comments, or ideas of your own that you'd like to suggest.
Be sure to read up on our application process for getting started with your proposal submission if you have not done so already.
<AN IDEA OF YOUR OWN>
Do you have an idea of your own? Let us know and maybe we'll like it too. We're very open to new ideas, areas of academic research, industry applications, and any other ways that may help get you hooked on BRL-CAD development. Just remember that BRL-CAD is a solid modeling CAD suite so keep that in mind when scoping your project. The idea needs to fit in with our project goals, it needs to be specific, and it needs to be detailed.
- Passion for the task being suggested
- Buy-in from one of the existing developers
Display Managers / Framebuffers
BRL-CAD uses a display manager to view geometry (wireframes, text, overlayed framebuffers) in graphical applications such as MGED. Current display managers talk directly to low level graphical toolkits such as X and OpenGL. A project goal for BRL-CAD is to implement a display manager using a cross platform toolkit that abstracts the low level cross platform details and gives us a single, unified codebase. Specific projects include:
In addition to the display manager, BRL-CAD also uses a framebuffer to display the results of its raytracer as they are generated. A single cross platform framebuffer is also very desirable.
Graphical Interface Enhancements
The primary environment in which users interact with BRL-CAD geometry is the MGED editor. An "improved MGED" editor, currently called Archer, has been in development for some time as an eventual replacement for MGED. There are many very useful projects related to Archer:
- MGED to Archer Command Migration
- MGED Sketch Editor Migration and Enhancement
- Plenty more to list... check TODO, notes
BRL-CAD Core Library Enhancement
- Analysis Library
- Geometry Conversion Library
- GED Transactions
- Geometric Constraint Solver
- Material and Shader Objects
- General Tree Walker
- Geometry Selection Functionality
Geometric Constraint Solver
Previous GSoC projects have made progress towards a parametrics/constraint library. Please check libpc Developer Doc as well as the libpc source. The work is effectively long-term considering the amount of work required. Talk to the developers before proposing this task to obtain project status.
BRL-CAD does not presently provide the means to specify values that are undetermined or otherwise dependent calculations. That is to say that there is no support for constraints and parametrics such that a modeler can define a sphere such that the sphere's radius necessarily maintains tangency with a given planar surface. This task would focus on implementing basic support for this feature in the BRL-CAD geometry format. Parametric representation of Geometry (and constraints) provides a good foundation for various aspects of Design computation, Geometry Generative Algorithms, and A more logically connected model not to mention significant reduction in Modeling time (since the process of modeling during an actual design cycle is inherently iterative).