I'm a mathematics major at the University of Waterloo (Canada), with an
interest in computer science and programming. I have little dev
experience at the moment, but hopefully that will change this summer. I
have a decent amount of experience in C (as well as scheme and python),
and am willing to learn C++ if required.
Hello Chris! Thanks for introducing yourself! That certainly will change if you're accepted into GSoC. However, your own sake it hopefully changes too... Waterloo has a challenging CS program. ;) As for languages, we have plenty of C and C++ projects to choose from our you can come up with some hybrid or alternative idea as well.
I would greatly prefer my GSoC project to be related to mathematics, as
I am hoping to increase my mathematical knowledge by participating in
the program, as well as getting some real dev experience in the
opensource community and sharpening my programming skills.
One of the great aspects about open source participation is that it's an investment of your time and effort that easily pays for itself. The more familiar you are with BRL-CAD, for example, will make it even easier to leverage it as a framework for class projects (which gives you a huge leg-up over your classmates). Continued (as opposed to sporadic) open source participation is looked on very favorably by most companies these days. Moreover, it can simply be very rewarding if writing code and working on code is something you really enjoy. The possibilities are endless.
- Implement a primitive surface area function
- Implement a primitive volume function
I'd hope to tackle as many primitives as possible for either of the
Don't forget computing centroids too. A fourth more advanced option is computing the medial axis. A fifth simpler option is defining the parameterization (e.g., a sphere is a 3d point and a 3d vector) of all primitives.
That task is probably best for people with dominant kinesthetic (learn-by-doing) or auditory (learn-by-reading/hearing) personalities. There's a visual component (the selected objects) but most of the work is designing and implementing the command-line interface. If you're a learn-by-seeing person, you might get bored. There's some math involved (for example, select objects within a given radius or within a bounding box), but it's fairly straightforward. There's probably more complexity to the command-line logic itself to implement a clean useable interface.
this looks like it is currently beyond my scope, but the concept seems
interesting. I'm unsure if its a suitable project for me though.
Of the three NURBS conversion tasks, that's probably the easiest and most clear cut. You know when it's working. The difficulty is wrapping your head around boundary representations and NURBS parameterization.
I'd love to hear your thoughts on any of these project ideas, as well as
any advice you may have for the application or anything related to GSoC
at all really.
Lots of tips included at http://brlcad.org/wiki/Summer_of_Code/Application_Guidelines along with other comments recently posted to other threads of this mailing list.