Editing User:Crdueck
From BRL-CAD
Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.
The edit can be undone.
Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.
Latest revision | Your text | ||
Line 9: | Line 9: | ||
==Programming Experience== | ==Programming Experience== | ||
− | I have experience with C (as well as Scheme and Python), and would be more than happy to have an opportunity to learn | + | I have experience with C (as well as Scheme and Python), and would be more than happy to have an |
+ | opportunity to learn C++ while working on my project. | ||
− | Most of my experience so far has come from school assignments, [https://projecteuler.net projecteuler.net] (programming challenges with a mathematical twist, check it out if you haven't heard of it before), and small personal pet projects. | + | Most of my experience so far has come from school assignments, [https://projecteuler.net/profile/crdueck.png projecteuler.net] (programming challenges with a mathematical twist, |
+ | check it out if you haven't heard of it before), and small personal pet projects. | ||
I have knowledge of data structures and algorithms from my courses at school. | I have knowledge of data structures and algorithms from my courses at school. | ||
− | I have a solid foundation in basic university level mathematics (one of my primary reasons for wanting to participate in GSoC is to further my mathematical knowledge in the subject of computer generated models) | + | I have a solid foundation in basic university level mathematics (one of my primary reasons for wanting to participate |
+ | in the GSoC is to further my mathematical knowledge in the subject of computer generated models) | ||
==Project Summary== | ==Project Summary== | ||
=====Primitive Volume and Centroid Fuctions===== | =====Primitive Volume and Centroid Fuctions===== | ||
− | Currently, most primitives in BRLCAD do not have volume, centroid, or surface area functions. My goal is to implement volume and centroid functions for many of these primitives. | + | Currently, most primitives in BRLCAD do not have volume, centroid, or surface area functions. My goal is to |
+ | implement volume and centroid functions for many of these primitives. | ||
− | The primitives I have chosen are mostly simple solids of revolution or other simple shapes and thus it will be easy to construct explicit formulas for their volumes and centroids. | + | The primitives I have chosen are mostly simple solids of revolution or other simple shapes and thus it will be easy |
+ | to construct explicit formulas for their volumes and centroids. | ||
− | As well, I | + | As well, I plan on cleaning up the comments found in the source code that I will be working on. |
==Proposal== | ==Proposal== | ||
Line 32: | Line 37: | ||
the volume and centroid for each primitive and implement these as readably, concisely and efficiently as possible. | the volume and centroid for each primitive and implement these as readably, concisely and efficiently as possible. | ||
− | + | While I am working on the source code for a primitive, I will take time to clean up the comments and move them from | |
− | for | + | the .c source code file to the appropriate .h API header file. I will make changes to the formatting if needed, |
− | + | check for typos and other such documentation related tasks. This is a simple task that will not detract from my main | |
− | + | focus of implementing volume and centroid functions. | |
− | + | During the summer I expect to devote most of my time to fulfilling this project. I have no major prior engagements | |
− | + | and will be able to spend a full 40+ hours per week on my commitments to BRLCAD. During this time I will make a strong | |
− | + | effort to remain in close contact with my mentor, providing updates on my progress, as well as any obstacles I come | |
− | + | across or questions I may have related to the project. I will be active on the #brlcad channel and mailing list | |
− | |||
− | |||
− | During the summer I expect to devote | ||
in an effort to hopefully contribute to the growth of BRLCAD outside the scope of my project. | in an effort to hopefully contribute to the growth of BRLCAD outside the scope of my project. | ||
Line 66: | Line 68: | ||
** arbn | ** arbn | ||
** pipe | ** pipe | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
==Timeline== | ==Timeline== | ||
Line 106: | Line 73: | ||
** compile BRLCAD from SVN source, ensure build environment is working | ** compile BRLCAD from SVN source, ensure build environment is working | ||
** become familiar with submitting patches to SVN | ** become familiar with submitting patches to SVN | ||
− | ** become familiar with source code in librt/primitives | + | ** become familiar with source code in librt/primitives |
− | ** get comfortable with using mged to generate | + | ** get comfortable with using mged to generate primitives for testing |
** participate with the BRLCAD community on irc, mailing list etc | ** participate with the BRLCAD community on irc, mailing list etc | ||
*Week 1 (May 22nd to 27th) | *Week 1 (May 22nd to 27th) | ||
** implement a volume and centroid function for ell | ** implement a volume and centroid function for ell | ||
− | |||
** test implementation for correctness | ** test implementation for correctness | ||
*Week 2 (May 28th to June 3rd) | *Week 2 (May 28th to June 3rd) | ||
** implement a volume and centroid function for tor | ** implement a volume and centroid function for tor | ||
− | |||
** test implementation for correctness | ** test implementation for correctness | ||
*Week 3 (June 4th to 10th) | *Week 3 (June 4th to 10th) | ||
** implement a volume and centroid function for rec and rcc | ** implement a volume and centroid function for rec and rcc | ||
− | |||
** test implementation for correctness | ** test implementation for correctness | ||
*Week 4/5 (June 11th to 24th) | *Week 4/5 (June 11th to 24th) | ||
** implement a volume and centroid function for arb8 and arbn | ** implement a volume and centroid function for arb8 and arbn | ||
− | |||
** test implementation for correctness | ** test implementation for correctness | ||
Line 142: | Line 105: | ||
*Week 9/10 (July 16th to 22nd) | *Week 9/10 (July 16th to 22nd) | ||
** implement a volume and centroid function for pipe (lin_pipe and bend_pipe) | ** implement a volume and centroid function for pipe (lin_pipe and bend_pipe) | ||
− | |||
** test implementation for correctness | ** test implementation for correctness | ||
Line 156: | Line 118: | ||
** final testing, code review to ensure all functions are working as expected | ** final testing, code review to ensure all functions are working as expected | ||
** prepare final evaluation | ** prepare final evaluation | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
==Me & GSoC== | ==Me & GSoC== | ||
I want to participate in GSoC 2012 for many reasons. Firstly, to develop a stronger understanding of how | I want to participate in GSoC 2012 for many reasons. Firstly, to develop a stronger understanding of how | ||
− | mathematics is implemented | + | mathematics is implemented by computers in the real world. My courses at school consist of a lot of theory, |
and I haven't seen much of the application side of things yet. When searching for a potential organization to | and I haven't seen much of the application side of things yet. When searching for a potential organization to | ||
apply to, I knew I wanted to work on mathematics related software, and BRLCAD caught my eye right away. | apply to, I knew I wanted to work on mathematics related software, and BRLCAD caught my eye right away. | ||
Line 174: | Line 129: | ||
a great chance to get involved with the open-source community. As an avid user of open-source software, contributing | a great chance to get involved with the open-source community. As an avid user of open-source software, contributing | ||
back to an open-source project has been something I have wished to pursue for a while now, but am just recently confident | back to an open-source project has been something I have wished to pursue for a while now, but am just recently confident | ||
− | enough in my skills to be able to meaningfully contribute. | + | enough in my skills to be able to meaningfully contribute. If accepted, I plan on continuing my involvement with BRLCAD |
+ | after GSoC ends, moving on to more challenging tasks. Having already invested some time familiarizing myself with | ||
+ | BRLCAD's source library, I'm considering completing some of my proposed goals this summer even if my application is | ||
+ | unsuccessful. | ||
− | + | ==My Initial Patch== | |
− | |||
− | |||
− | |||
− | |||
− | ==My | ||
As a warm up to gain knowledge about the internals of BRLCAD, I decided to implement a volume function for a simple primitive. | As a warm up to gain knowledge about the internals of BRLCAD, I decided to implement a volume function for a simple primitive. | ||
After some discussion on #brlcad, I chose a ell for its simplicity. You can find my patch notes [https://sourceforge.net/tracker/?func=detail&aid=3513421&group_id=105292&atid=640804 here]. | After some discussion on #brlcad, I chose a ell for its simplicity. You can find my patch notes [https://sourceforge.net/tracker/?func=detail&aid=3513421&group_id=105292&atid=640804 here]. | ||
− | + | If you have any comments on this patch please let me know :) | |
− | |||
− | |||
− | If you have any comments on |