Latest revision |
Your text |
Line 1: |
Line 1: |
− | '''!!!!!!!!!!!!!!''' | + | 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 [http://brlcad.org/~sean/ideas.html these ideas]. |
− | '''!!! NOTICE !!!''' | |
− | '''!!!!!!!!!!!!!!''' | |
− |
| |
− | '''This page is provided as a historic reference only.'''
| |
| | | |
− | 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 '''[http://brlcad.org/~sean/ideas.html these ideas]'''.
| + | A detailed articulate (i.e. excellent) proposal that has been discussed with us beforehand will generally trump the priorities. Please do [http://brlcad.org/d/contact contact us] if you have any questions, corrections, comments, or ideas of your own that you'd like to suggest. |
− | | |
− | 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 [[Google Summer of Code|application process]] for getting started with your proposal submission if you have not done so already. | | Be sure to read up on our [[Google Summer of Code|application process]] for getting started with your proposal submission if you have not done so already. |
| | | |
| | | |
− | <!-- = High Priority Projects = -->
| + | = High Priority Projects = |
− | | |
− | = Project Ideas =
| |
| | | |
| == <AN IDEA OF YOUR OWN> == | | == <AN IDEA OF YOUR OWN> == |
Line 64: |
Line 56: |
| Most users discovering BRL-CAD for the first time are usually introduced to MGED first. MGED, however, has always been considered an "expert interface" that requires substantial investment of time and effort to learn and use effectively. There are many enhancements to the interface that would improve usability and discoverability. | | Most users discovering BRL-CAD for the first time are usually introduced to MGED first. MGED, however, has always been considered an "expert interface" that requires substantial investment of time and effort to learn and use effectively. There are many enhancements to the interface that would improve usability and discoverability. |
| | | |
− | The idea behind this task would be propose improvements to MGED's existing Tcl/Tk user interface implementation. Proposals could include usability improvements, improving discoverability of features, refactoring the existing implementation, and more. The approach can be minimal, drastic, or incremental, but should be appropriately scoped and include detail. ''This is a high-priority topic.'' | + | The idea behind this task would be propose improvements to MGED's existing Tcl/Tk user interface implementation. Proposals could include usability improvements, platform-specific release integration (e.g., get AquaTk working), improving discoverability of features, refactoring the existing implementation, and more. The approach can be minimal, drastic, or incremental, but should be appropriately scoped and include detail. ''This is a high-priority topic.'' |
| | | |
| Requirements: | | Requirements: |
Line 109: |
Line 101: |
| ==Constraints and Parametrics== | | ==Constraints and Parametrics== |
| | | |
− | This was a GSoC 2008 project. For more information about libpc(parametrics and constraints library) please check [[libpg : A parametrics/constraint library|libpc Developer Doc]] as well as the [http://brlcad.svn.sourceforge.net/viewvc/brlcad/brlcad/trunk/src/libpc/ 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. | + | This was a GSoC 2008 project. 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).
| |
| | | |
− | Primary work would be in terms of constructing Constraint Solvers. Geometrical constraints in our context can be broadly classified into
| + | 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. |
− | *Implicit : Constraints implicit in the definition of a primitive : Tangency or perpendicularity of Vectors, Equality of scalars etc.
| |
− | *Explicit : Constraints explicitly expressed between two or more primitives.
| |
− | One of the intricate parts of the work is the actual integration of libpc with librt.
| |
− | Associated work going on with libpc involves the creation of a Math Virtual Machine for parsing and evaluating (math) expressions which would be used for stating the constraints, along with the grammar.
| |
− | As of now [http://www.boost.org/ Boost] libraries are being used for various functionalities.
| |
| | | |
| Requirements: | | Requirements: |
| | | |
| *Strong familiarity with C | | *Strong familiarity with C |
− | *Strong familiarity with C++ (check pcMath* source code)
| |
| *Ability to implement within an existing framework | | *Ability to implement within an existing framework |
| | | |
Line 143: |
Line 127: |
| Difficulty: medium | | Difficulty: medium |
| | | |
− |
| |
− | == Aqua MGED on Mac OS X ==
| |
− |
| |
− | BRL-CAD primary editor, MGED, is a hybrid application with the main logic predominantly written in C and the GUI written in Tcl/Tk. Given MGED's heritage, though, and for porting ease, it still requires X11 on Mac OS X. Ever since [http://tcltkaqua.sourceforge.net/ AquaTk] was unveiled several years ago, we've wanted to leverage it to run MGED natively on Mac OS X without a major porting/coding effort. Alas, much testing of AquaTk indicated that it was not quite ready for prime time (this was several years ago).
| |
− |
| |
− | http://tcltkaqua.sourceforge.net/
| |
− |
| |
− | This project entails getting the latest AquaTk release build working with MGED, then with our bundled Tcl/Tk distribution, and working to make it so that everything "just works". MGED without an X11 dependency. This may or may not require fixing minor issues in Tk, this will likely require subtle tweaks to MGED's Tcl/Tk code to make things look reasonable. Either way, your task would be to figure it all out, have a plan, and make it work.
| |
− |
| |
− | Requirements:
| |
− |
| |
− | *Basic familiarity with Tcl/Tk
| |
− | *Familiarity with Autotools-based build systems and resolving compilation/linkage issues
| |
− | *Good diagnostic/porting abilities
| |
− |
| |
− | Difficulty: low
| |
| | | |
| == Bug Fix Buffet == | | == Bug Fix Buffet == |
Line 177: |
Line 145: |
| Difficulty: variable | | Difficulty: variable |
| | | |
− | <!--
| + | |
| = Additional Projects = | | = Additional Projects = |
| | | |
− | These projects will generally require a very well thought out proposal and a fair bit of discussion beforehand to be considered over one of the higher-priority projects listed above BUT they are certainly all very interesting and desirable projects worth considering. Saying they are additional isn't meant to be discouraging. ''A great proposal from a student that is passionate about their idea is a major and dominant consideration factor.'' | + | These projects will generally require a very well thought out proposal and a fair bit of discussion beforehand to be considered over one of the higher-priority (and harder) projects listed above. This isn't meant to be discouraging, though. A great proposal from a student that is passionate about their idea is a major consideration factor. |
− | -->
| |
| | | |
| ==IGES importer/exporter enhancements== | | ==IGES importer/exporter enhancements== |
Line 260: |
Line 227: |
| *Familiarity with C/C++ | | *Familiarity with C/C++ |
| *Solid mathematical foundations are required | | *Solid mathematical foundations are required |
− |
| |
− | Difficulty: medium
| |
| | | |
| | | |
Line 341: |
Line 306: |
| | | |
| Difficulty: high | | Difficulty: high |
− |
| |
− |
| |
− | ==Fixed-precision compile-time interface==
| |
− |
| |
− | BRL-CAD uses floating point computation pervasively with extensive efforts taken to account for various floating point types and floating point instability. For the purposes of regression testing and the validation and verification of routines, it is highly desirable to have the ability to guarantee calculations to a given precision.
| |
− |
| |
− | Basically, this task entails implementing a GMP C++ interface as our fastf_t type as a compile-time option. The task will require refactoring a cleaning up a lot of the code throughout BRL-CAD so that fastf_t's are pervasive to a given ray trace evaluation. It will also require developing C++ operators to override behavior for [], +, -, *, and various others. BRL-CAD already includes a regression testing suite that can be used to
| |
− |
| |
− | See the "benchmark" tool in a BRL-CAD install to get started as well as include/*.h and src/libbn and src/librt for libraries you'll have to work with. The main 'rt' raytrace binary is in src/rt/.
| |
− |
| |
− | Requirements:
| |
− |
| |
− | *Familiarity with C/C++
| |
− |
| |
− | Difficulty: low
| |
− |
| |
− |
| |
− | == g_qa GUI ==
| |
− |
| |
− | The g_qa tool provides a handful of ways to analyze a geometry file. Providing an intuitive GUI with check boxes to select modes as well as parsing the results for easier interpretation would be handy. See http://sourceforge.net/tracker/?func=detail&aid=2717388&group_id=105292&atid=640805 for more details.
| |
− |
| |
− | Requirements:
| |
− |
| |
− | * Basic familiarity with Tcl/Tk
| |
− |
| |
− | Difficulty: low
| |
− |
| |
− | == BRL-CAD Benchmark database website ==
| |
− |
| |
− | The ''BRL-CAD Benchmark'' tests the performance of a system by iteratively evaluating a system's overall computational performance capacity by using a highly CPU-intensive application metric. The Benchmark renders a series of scenes into 512x512 images and compares the results against a reference baseline. The local machine's performance is compared to the base system (called VGR)
| |
− | and a numeric "VGR" multiplier of performance is computed. This number is a cumulative metric from which one may qualitatively and directly compare cpu performance, cache performance, differing versions of BRL-CAD, and different compilers.
| |
− |
| |
− | This task entails wrapping up a web interface around the BRL-CAD Benchmark suite so that results may be received from users, stored in a database, and be summarized through a searchable web interface. The project would be specific to the summary metric computed by the BRL-CAD benchmark and various system and compilation characteristics for a given result. Users should be able to visit the site, submit their results, and see a comparison of their performance to other systems already in the database.
| |
− |
| |
− | Requirements:
| |
− |
| |
− | *Strong web development skills
| |
− | *(optional)Familiarity with Drupal or Mediawiki customization and/or module development
| |
− | *Must integrate well with the BRL-CAD Benchmark
| |
− |
| |
− | Difficulty: low
| |
− |
| |
− | = Mentors =
| |
− |
| |
− | BRL-CAD operates via ''group mentoring'' meaning that you may call upon multiple individuals for assistance. Our mentors available to assist are:
| |
− |
| |
− | *Sean Morrison (brlcad)
| |
− | *Erik Greenwald (``Erik)
| |
− | *Daniel Rossberg
| |
− | *Brad Harder (yukonbob)
| |
− | *Cliff Yapp (starseeker)
| |
− | *David Loman (d-lo)
| |
− | *Keith Bowman (indianlarry)
| |
− | [[category: Summer of Code]]
| |