Editing Community Publication Portal

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 30: Line 30:
 
----
 
----
 
----
 
----
 
  
 
== Ready for Publication ==
 
== Ready for Publication ==
Line 37: Line 36:
 
Note: if you see a comment indicating that a section is FROZEN, any changes you make in that section may go unnoticed as the article is being prepared for distribution. If you find errors in a FROZEN article, go ahead and correct the article but contact Sean (brlcad on freenode [[IRC]]) who may be able to incorporate changes during final publication.
 
Note: if you see a comment indicating that a section is FROZEN, any changes you make in that section may go unnoticed as the article is being prepared for distribution. If you find errors in a FROZEN article, go ahead and correct the article but contact Sean (brlcad on freenode [[IRC]]) who may be able to incorporate changes during final publication.
  
'''''Move from Final Review to Here When Ready'''''
+
==== Move from Final Review to Here When Ready====
  
  
------
+
----
  
==Final Review==
+
== "Improving BRL-CAD's networking library":Andrei - Constantin Popescu ==
 +
by: Plamen Nikiforov
  
====Google Code In 2014====
+
Andrei - Constantin Popescu is a second year undergraduate at Polytechnic University of Bucharest, studying at the computer science department. Here is an interview about Andreis Google Summer of Code project.
Out of only 12 selected, we're very proud to announce that BRL-CAD is participating in the 2014 Google Code-In (GCI) program! Complementary to the highly successful Google Summer of Code program for university students, GCI is a contest to encourage pre-university students (age 13-17) to get involved with open source.This is the third consecutive year, BRLCAD is accepted as a mentoring organization.  
 
  
Read more shall be redirected to -> http://brlcad.org/wiki/GCI2014
+
Plamen(Pl): How did you found out about BRL-CAD and why did you chose to them?
  
====Geometry Viewer====
+
Andrei(An): I heard about BRL-CAD when I was searching for a Google Summer of Code project to do. After doing some research on their website regarding Google Summer of Code ideas, several interested me particularly.
Geometry Viewer-
+
The language I am currently strongest in is C  and I am also interested in computer graphics, this motivated me towards applying for BRL-CAD. Another key aspect was that the BRL-CAD mentoring community was very friendly and helpful towards me.
  
<b>What is a geometry viewer?</b>
 
  
It’s a service which allows users to manage all there geometry files. It can upload and view BRL-CAD geometry files in a different format so that others can edit it. But it’s currently under construction.
+
Pl: Why did you choose "Improving BRL-CAD's networking library" to be your project?
  
<b>It’s the equivalent to?</b>
+
An: The first project idea I proposed was " Code reduction". First, I looked at this project at Sean's suggestion. There were several reasons why I chose this project idea : I was taking a networking course and it would help me consolidate my knowledge and the performance testing seemed a more interesting problem to investigate.
  
It’s like a Facebook for files where you can share other files with the public and then they can edit, change or fix the application to make it smother.
 
  
<b>Why is it used?</b>
+
Pl: What were your aims of the project?
  
It’s used to allow the user to become more organised and make the user interface easier to follow and understand.
+
An: My initial aims were to investigate and fix any performance bottleneck regarding transfer speed for various file sizes and package sizes, test the code integrity of networking library and eliminating as many unhandled exceptions as well as eliminating global variables from the networking library.
  
<b>What is needed to access this service?</b>
 
  
All you need on your computer with a Web GL supported browser, BRL-CAD, three.js and a Linux Apache MySQL PHP (LAMP).
+
Pl: Has this project helped your skills improve?
  
<b>How it works?</b>
+
An: Definetly! The most important aspect is that I greatly improved my communication skills. Aside of that, I also improved my capacity to work in a team, developed the ability to work with a large code base and of course improved my implementation skills.
  
Using BRL-CAD it changes the format to OBJ and loads it through the three.js all in all it converts then loads.
+
Pl: Would you continue to contribute to BRL-CAD?
 +
An: Of course ! I continued to contribute even after Google Summer of Code. Even if my contributions aren't as numerous as I would like because of my crowded academic schedule, I am trying to contribute for as much as possible. Contributing to BRL-CAD helps me improve knowledge as well as providing code that is actually useful for a large number of people.
  
  
<b>Advantages</b>
+
====Google Summer of Code: Jianbang Wu====
 +
by: John
  
•Easier for the user to manage
+
This article is based on some questions I asked Jianbang and in his profile page.
  
•Allows all user to see the file as it converts the format
+
Jianbang Wu (also known as Phoenix) participated in BRL-CAD development during Google Summer of Code 2012. His work was "to convert implicit Constructive Solid Geometry (CGS) primitives to boundary representations (BREPs)". He is a sophomore student in Peking University, China.
 +
His skills involve C/C++, Object Oriented Programming, data structures, algorithms, math, and image processing.
  
•Makes sharing easier and safer due to the fact you still have overall control
+
Jianbang chose to apply to BRL-CAD because "The mentors of BRL-CAD are really nice. :)" and because he loves computer graphics and math.
 +
He started working without any Computer Aided Design (CAD) software experience, which he learned during the summer.
 +
He worked on two projects:
  
•It allows the skills of strangers to improve your application safely
+
First, he followed Cliff's suggestion: "Implicit to NURBS conversion". This consisted in the conversion from implicit primitives to Non Uniform Rational Basis Spline (NURBS) primitives. In this project he also modified some unfinished conventions and added some new primitives.
 +
Since he finished this task before the mid-term evaluation, he decided to make a follow-up: "NURBS surface-surface intersection".
  
•Its currently under construction so more features will be add
+
Finally, he suggests future Google Summer of Code students to "Follow your interest, choose the project you like, and you will find Google Summer of Code really an excellent experience".
  
By Mohamed Hammeda
+
You can check out some images related with his work here:
  
====Alexander Lotsu: Wanted - Software Maintainer for Windows Binary Platform====
+
http://brlcad.org/wiki/User:Phoenix/GSoc2012/Reports#Test_Results
Do you enjoy correcting faults?
 
  
Would you like to make improvements to software that vast numbers of users will benefit from?
+
Related with his first work:
 +
* m35.g: component (left: implicit + csg, right: brep + csg)
 +
[[Image:M35.implicit.png]]      [[Image:M35.brep.png]]
  
Would you like to enhance your resume and gain wider experience? Do you have some spare time?
+
Related with his second work:
 +
* The intersection curves (green) of a tgc (red) and an epa (blue). (Two segments)
 +
[[Image:Tgc epa.png]]
  
We need a software maintainer/release maintainer. Maintainers are needed for free and open source software to perform a variety of tasks. As BRL-CAD is a cross-platform system it has maintainers allocated to many binary platforms but does not currently have one for Windows. We are looking for someone to fill this voluntary role which is critical when releasing software.  
+
John is a Google Code-In student living in Portugal. He's favourite language is Python although he's considering to widen his knowledge to C.
  
A maintainer is someone who is basically willing to support creating the release for a particular platform (In this case Windows). Typical responsibilities include building source code into a binary package, patching and investigating platform issues, naming and announcing a release.
+
==== Linux Release Packaging Process: A mission for Jordi Sayol ====
 +
By: John
  
To find out more or to indicate your interest, announce your interest either through:
+
Jordi Sayol is the man behind the automation of the BRL-CAD Linux release packaging process, which he recently finished. His work continues the one made previously by Manuel A. Fernandez Montecelo in .dbm packages.
  
BRL-CAD devel Mailing List - http://sourceforge.net/p/brlcad/mailman/brlcad-devel/
+
This article is based on some questions I asked him and on an interview made to Jordi by Gala, a Google Code-in student.
  
BRL-CAD IRC Channel - http://brlcad.org/wiki/IRC
+
Jordi has been working with BRL-CAD since January 2011,with his Linux experience (as advanced user) as his only companion. By that time, he started to collaborate on-line with other BRL-CAD team members.
  
Further Information
+
With such a massive project, which has millions of lines of code, he decided to take as his responsability the building of binary packages for Linux systems, since he's not a programmer.
  
 If you wish for more detail about releases on BRL-CAD, visit this link: http://svn.code.sf.net/p/brlcad/code/brlcad/trunk/HACKING
+
In both interviews, he explains quite accurately the process of making those. He has made two scripts that automate the whole work. What the scripts do is to handle all the pre-building proccess and then create the packages. "In fact the building job is done by debhelper to create deb packages, and the rpmbuild command to create rpm packages. The scripts tries to ensures that all dependencies needed by these commands are available, copy Linux specific files, create configuration files, etc. before building the packages".
(Go to the section on releases near the bottom of the page)
+
The scripts allow anyone to easily create their own deb/rpm packages as needed", since they "create deb/rpm packages for the host architecture where they are executed".
 +
This allows BRL-CAD to be distributed Debian-like and Fedora-like systems, which means a great variety of platforms where BRL-CAD will be able to work. Unfortunately, since Fedora and OpenSUSE don't share the same nomenclature, their rpm packages must be separate ones.
 +
The scripts can be found at the "sh" folder when you download the BRL-CAD sources.
  
 For a definition of a Software/Release maintainer, visit this link:
+
Since he is not a programmer (only an advanced Linux user), he won't develop other parts of the code, but I think all the BRL-CAD community can be grateful for what he has done.
http://en.wikipedia.org/wiki/Software_maintainer
 
  
 +
by John.
  
Article written by Alexander Lotsu
+
John is a Google Code-In student living in Portugal. He's favourite language is Python although he's considering to widen his knowledge to C.
  
====Google Code In 2013 Updates ====
+
Gala Taylor is a 2012 Google Code-In participant. Although she has used various Free and Open Source Software (FOSS) products over the years, and has contributed example files and tutorials to several projects, this is the first time she has actively participated in the development of FOSS code. Gala is currently in 9th grade, and her favorite computer language is Java.
  
The Google Code-in is a contest to introduce pre-university students (ages 13-17) to the many kinds of contributions that make open source software development possible. This is the second consecutive year when the esteemed open source solid modeling tool, BRL-CAD is accepted to participate in Google Code-In, out of the total of 10 organizations chosen. 
+
==== Gala Taylor: New BRL-CAD Linux Release Packaging Process Automation ====
 +
By: Gala Taylor
  
Many of you would be wondering about the participation of BRL-CAD in GCI so far and hence, I came up with this post. The contest runs from November 18, 2013 to January 6, 2014. Its December,15 today, where we are exactly half-way on the journey. This year BRL-CAD has received an over-whelming response from young smart talented kids from all around the world, where they are contributing to small itty-bitty tasks of not more than 72 hours based in various domains related to software development and maintenance like Coding, Documentation and Training, Quality Assurance, User Interface and Outreach and Research.  
+
BRL-CAD supports Debian, Ubuntu, Fedora, and openSUSE, and other Linux distributions. Jordi Sayol recently finished automating the BRL-CAD Linux release packaging process, and he took some time out to chat with Gala Taylor about it - and also answer some question about what it's like to work on the BRL-CAD project.
  
After many task claims, reclaims, rejection, improvements, exchange of ideas and views between students and mentors via comments, IRC and mailing list and then acceptance of each task, till date, 87 tasks with minutely observed perfection have been closed successfully. 3 tasks are with status 'Needs Work', which means one of the mentors has sent back those tasks for more work. 4 tasks are on the to-be-reviewed list of mentors, 7 tasks currently claimed and 21 tasks are reopened and 85 tasks open with a total of 207 tasks.
+
'''Gala Taylor (GT)''': How long have you been working on the BRL-CAD project?
  
I hope the young brains are enjoying while they work on the kinds of tasks they are comfortable. It is not just about working on tasks, it means much more than that. I bet, being a part of an awesome, cool and one of the most friendly open source organizations and working in collaboration with fantastic perks all across the planet Earth at such a small age will be an astronomical experience for participants.  
+
'''Jordi Sayol (JS)''': I've been involved with the BRL-CAD project since January 2011.
  
A huge thanks to all participants for making it a huge and happening contest. Thanks to all mentors for adding tasks time-to-time to meet the demand and supply curve of fresh new tasks. Special thanks to Sean, the man without whom BRL-CAD's participation in GCI is hard to imagine. All the best kids for rest of the contest. A ticket to Google’s Mountain View, California, USA Headquarters is awaiting for two grand-prize winners. Good Luck ! :)
+
'''GT''': How much education and experience were required to prepare you to contribute to the BRL-CAD project?
  
====GCI 2013 Quick Update/ Highlights (2)====
+
'''JS''': My experience is just as an advanced Linux user.
  
With 12 days, 2 hours remaining for the task to end, i.e. 33% of the contest still remaining, we have got pretty amazing statistics until now.
+
'''GT''': Do you need to physically meet with the other team members in order to contribute to the BRL-CAD project, or is it sufficient to work on-line?
  
After many task claims, reclaims, rejection, improvements, exchange of ideas and views between students and mentors via comments, IRC and mailing list and then acceptance of each task, till date, 162 tasks with minutely observed perfection have been closed successfully. 7 tasks are with status 'Needs Work', which means one of the mentors has sent back those tasks for more work. 2 tasks are on the to-be-reviewed list of mentors, 4 tasks currently claimed and 73 tasks open with a total of 247 tasks.
+
'''JS''': All of my collaboration is done on-line.
  
We have already crossed 25% more than that of the last year's record. Let wait and watch how far can we go and break our own records.
+
'''GT''': The BRL-CAD project is a collection of over four hundred tools, utilities and applications, with over a million lines of source code. With such a massive and complex system, how do you decide what to work on? Is it necessary to understand all that code in order to contribute to the project?
  
Good luck Kids !
+
'''JS''': My responsibility is focused on building binary packages of BRL-CAD for Linux systems.
  
Keep Contributing to FOSS !
+
'''GT''': Besides the release processing work which is described in the HACKING file, can you walk me through the process of actually transforming a developer’s checked-in source code into an .rpm or .deb that is ready to be downloaded and installed?
  
====BRL-CAD Accomplishments : GCI 2012====
+
'''JS''': It's quite simple. I have created two bash scripts that automate this process. The "sh/make_deb.sh" script creates a deb package installable on Debian-like systems. This currently includes Debian, Ubuntu, Linux Mint, and other distributions. The "sh/make_rpm.sh" script creates an rpm package for Fedora-like systems. This includes Fedora, Centos, Redhat, and some other distributions, or OpenSUSE, depending on the system where it is built. There are separate rpm packages for Fedora and OpenSUSE because they do not share the same nomenclature on their packages. Note also that both scripts create deb/rpm packages for the host architecture where they are executed, and that the results are currently only tested on x86_32 and x86_64 hosts.
  
[http://www.google-melange.com/gci/org/google/gci2012/brlcad Google Code -In 2012] brought 69 budding new shoots and branches to the mighty BRL-CAD tree, and the canopy of warmth and love offered by the community helped them blossom and bloom in the 7 weeks of the program . With a few snips, a little trimming and pruning, they have learned, innovated, created and contributed to one of the largest free and open source communities in the world, and have contributed to a software that will touch many people around the world. They now have their roots  planted in the BRL-CAD community with the successful completion of their tasks and are ready to shelter budding shoots to come!
+
With these scripts, anyone can easily create their own deb/rpm packages as needed. This is especially useful if the user wants to install BRL-CAD on a very old system, maybe requiring special compilation for specific graphic cards drivers, etc.
  
We had 66 students from 36 countries complete 178 tasks in the 7 week contest.  Students worked with BRL-CAD on coding, documentation, training, user interface, research, outreach tasks, and quality assurance tasks.  
+
'''GT''': Thank your for your time today and your contributions to BRL-CAD, Mr. Sayol!
  
Akshay Kashyap and Cezar El-Nazli were among the 20 lucky and hardworking [http://google-opensource.blogspot.in/2013/06/google-code-in-grand-prize-winners.html grand prize winners of GCI-2012] who received a trip to Google’s Mountain View, California, USA Headquarters for themselves and a parent or legal guardian for an award ceremony, an opportunity to meet with Google engineers, explore the Google campus and have a fun day in the San Francisco, California sun.
+
'''JS''': It was a pleasure.
  
[http://www.google-melange.com/gci/homepage/google/gci2013 Google Code In 2013] has been already announced. If you are of the age 13-17 years, a pre-university student, this is the best opportunity for you to grab and get your hands on and step into the whole new world of software development and maintenance. Are You Ready ?
 
  
More information on what is Google Code-In, how you can participate, what are the exciting prizes for you, etc. is available [http://brlcad.org/wiki/Google_Code_In here].
+
Please visit the BRL-CAD project website for more information: http://brlcad.org
  
For further queries mail us on our [http://brlcad.org/wiki/Mailing_Lists mailing list] or contact us via [http://brlcad.org/wiki/IRC IRC]
 
  
------
+
'''Jordi Sayol''' is the maintainer of the BRL-CAD Linux release packaging process.
  
==== "Improving BRL-CAD's networking library":Andrei - Constantin Popescu ====
+
'''Gala Taylor''' is a 2012 Google Code-In participant. Although she has used various Free and Open Source Software (FOSS) products over the years, and has contributed example files and tutorials to several projects, this is the first time she has actively participated in the development of FOSS code. Gala is currently in 9th grade, and her favorite computer language is Java.
by: Plamen Nikiforov
 
  
Andrei - Constantin Popescu is a second year undergraduate at Polytechnic University of Bucharest, studying at the computer science department. Here is an interview about Andreis Google Summer of Code project.
+
----
Plamen(Pl): How did you found out about BRL-CAD and why did you chose to them?
 
  
Andrei(An): I heard about BRL-CAD when I was searching for a Google Summer of Code project to do. After doing some research on their website regarding Google Summer of Code ideas, several interested me particularly.
+
==== Kyle Bodt: Ronja ====
The language I am currently strongest in is C  and I am also interested in computer graphics, this motivated me towards applying for BRL-CAD. Another key aspect was that the BRL-CAD mentoring community was very friendly and helpful towards me.
 
  
 +
http://brlcad.org/wiki/Ronja
  
Pl: Why did you choose "Improving BRL-CAD's networking library" to be your project?
+
Ronja (Reasonable Optical Near Joint Access) is an innovative piece of equipment that utilizes reliable optical data links to create a current communication range of 1.4 km and a speed of 10Mbps full duplex that can be used as a general purpose wireless link for virtually any networking project. This is a very important project for Twibright Labs, a small group of computer science graduate students operating out of Charles University in Prague in the Czech Republic. The group specializes in the usage of Free Software and User Controlled Technology Development.
  
An: The first project idea I proposed was " Code reduction". First, I looked at this project at Sean's suggestion. There were several reasons why I chose this project idea : I was taking a networking course and it would help me consolidate my knowledge and the performance testing seemed a more interesting problem to investigate.
+
The primary output for the Ronja project is a design. The lab does not intend to manufacture and sell the hardware that is being designed but wants to engage in open source development of the technology. The philosophy surrounding User Controlled Technology is the ideal that the end-user is provided with unrestricted access to the intellectual property surrounding the technology, including the tools that are being used to create it. One tool playing an integral part in the development of the Ronja designs is BRL-CAD. All of the models that Twibright labs use to display the different variants of their Ronja concept were created with the help of BRL-CAD. BRL-CAD has allowed the members of Twibright labs to create instructional diagrams so that the users and builders of their open source technology will be able to have the latest information with regard to the proper construction of a Ronja unit. The interactive geometry editor and ray-tracers in BRL-CAD are an integral part in the communication of design plans for Twibright labs and enables them to connect with the users, who are the driving force behind the User Controlled Technology ideal.
  
 
+
----
Pl: What were your aims of the project?
 
 
 
An: My initial aims were to investigate and fix any performance bottleneck regarding transfer speed for various file sizes and package sizes, test the code integrity of networking library and eliminating as many unhandled exceptions as well as eliminating global variables from the networking library.
 
 
 
“Here are some of Andreis performance measurements for different package sizes:
 
Package size 1 – 2048 - http://i.imgur.com/OPum5.png
 
Package size 2048 – 4194304 - http://i.imgur.com/fH4rL.png
 
Package size 1 – 4194304 - http://i.imgur.com/AXUpN.png ”
 
 
 
 
 
Pl: Has this project helped your skills improve?
 
 
 
An: Definetly! The most important aspect is that I greatly improved my communication skills. Aside of that, I also improved my capacity to work in a team, developed the ability to work with a large code base and of course improved my implementation skills.
 
 
 
Pl: Would you continue to contribute to BRL-CAD?
 
An: Of course ! I continued to contribute even after Google Summer of Code. Even if my contributions aren't as numerous as I would like because of my crowded academic schedule, I am trying t
 
  
 
== Initial Drafts ==
 
== Initial Drafts ==
 
These are incomplete articles being worked on.  Short 250 to 500-word articles (not counting tables, images, etc) are usually perfect.
 
These are incomplete articles being worked on.  Short 250 to 500-word articles (not counting tables, images, etc) are usually perfect.
 
[[File:BRL-CAD Primitives Chart.png|thumb|128px|Grouped chart of all supported BRL-CAD primitives]]
 
==== Mitchell Roberts: Chart of all Primitives ====
 
 
BRL-CAD supports 37 geometric primitive solids. A database containing one example of each created and arranged into a chart. Each colored rectangle in the background corresponds to a different type of primitive (ex: the red group contains cones and cylinders). Primitives that fall under multiple categories, like the pipe (made of cylinders and toroids) are contained by multiple background rectangles. The ars and bot examples did not raytrace correctly, but are continuing to be worked on.
 
 
The database can be used not only for a demonstration of BRL-CAD's primitives and their unique uses, but also for regression testing. Outputs from raytracing functions like rtWeight and rtArea can be compared to established normals to ensure changes to the source code do not cause unwanted changes to the way any primitives are raytraced. In the future, a tool to create the database automatically will hopefully be created and added to BRL-CAD's regression testing suite.
 
 
==== Physics Simulation System ====
 
 
BRL-CAD includes a Bullet-based rigid-body physics simulation system. The system takes advantage of BRL-CAD's ray tracing API to detect collisions between arbitrarily-shaped geometry, which are then passed to Bullet for physics calculations. The current system consists of a working demo allowing one object to be subjected to gravity and then collide with a fixed "ground" object.
 
 
Recently, the physics system has received some attention as BRL-CAD works towards support for geometric constraints and joint systems. The goal is to expand the demo into a useful physics system capable of real-time simulation displayable in the Archer interface. In addition to various bug fixes and performance improvements, changes that will be merged soon include a flexible way for users to define simulation scenes using BRL-CAD's attribute system along with a simple combination-based scene description.
 
 
A video of the improved simulation system can be viewed at https://www.youtube.com/watch?v=xzaKWzntnmc
 
 
==== Documentation Redux ====
 
 
BRL-CAD was selected to participate in the 2013 Google Summer of Code '''[http://www.flossmanuals.org/news/2013-doc-camp-call-proposals Doc Camp]'''.  A team of contributors got together in California, brainstormed, and wrote an entire book for BRL-CAD in just a few days.  They created a guide for contributing to BRL-CAD.
 
 
[[File:DocCamp_WorkingHard.jpg|thumb|right|256px|BRL-CAD doc team getting to work writing a book from scratch in less than three days]]
 
 
Contrary to and perhaps because of longstanding efforts, people interested in improving BRL-CAD sometimes find themselves lost in a sea of information.  In all, BRL-CAD has more than a million words of documentation across hundreds of manual pages, dozens of tutorials and examples, hundreds of wiki pages, dozens of technical papers, and other resources.  It's a lot, created over decades of development.
 
 
Over the course of a week in October, members from our community participated in something fresh.  Something different.
 
 
[[File:DocCamp_TopicWall.jpg|thumb|right|256px|Unconference brainstorming stickies]]
 
 
A team of individuals traveled to the Google headquarters in Mountain View, California, to participate in a 2-part event: an unconference and a book sprint.  Teams for GNOME, OpenMRS, and BRL-CAD arrived on the Google campus and talked about techniques, tools, formats, documenters, and more.  By the end of the week, seven individuals from four different countries, three continents, and one oceanic island produced a book for BRL-CAD more than 100 pages in length.
 
 
As free open source software, one of BRL-CAD's greatest strengths is that anyone can get involved and directly contribute.  You can make it better.  This new book focuses on that aspect and introduces people to the project while providing detailed information for developers, writers, artists, and other potential contributors.
 
 
 
[[File:DocCamp_Relaxing.jpg|thumb|right|256px|Fresh air break with Allen Gunn of Aspiration and Adam Hyde of FLOSS Manuals]]
 
 
This new effort kick-starts a campaign to dramatically improve BRL-CAD's documentation, starting with this new contributor's guide.
 
 
Attending the camp provided an exciting opportunity to get a grasp on new techniques for documenting and sharing information about our software, hopefully in ways that help us grow our community.  BRL-CAD's team included Sean Morrison, Eric Edwards, Cliff Yapp, Harmanpreet Singh, Check Nyah, Isaac Kamga, and Scott Nesbitt.  Thank you to Google for their sponsorship, [http://aspirationtech.org/ Aspiration] for magnificently framing the event, and [http://www.flossmanuals.org/ FLOSS Manuals] for directing the production.
 
 
[[File:DocCamp_Team.png|thumb|right|384px|The BRL-CAD Doc Camp Team]]
 
 
  
 
==== Anurag Murty: Voxelizing Geometry ====
 
==== Anurag Murty: Voxelizing Geometry ====
Line 409: Line 358:
  
 
Initial progress on the integration of ADRT's libtie "triangle intersection engine" with LIBRT.
 
Initial progress on the integration of ADRT's libtie "triangle intersection engine" with LIBRT.
 
==== Tan YuGin: BRL-CAD's Code Hardening Efforts ====
 
 
A/N: Written as a Google Code-in 2013 task.
 
 
BRL-CAD is a large-scale software based on decades of development and contains over a million lines of code. Its contributors are numerous and come from countries all over the world. Any project of such magnitude is bound to face problems with ensuring consistency and high standards across its various aspects.
 
 
The core team behind BRL-CAD, however, has sought to alleviate such issues as far as possible. In a ‘HACKING’ document included with the rest of the software, the team has provided universal guidelines and good practices for all BRL-CAD code, in areas such as code formatting, organization, and conventions. BRL-CAD also encourages the use of various tools to make it easier for them to check for problems or errors in their work. These tools include the Simian similarity analyzer, a program that detects duplicated code and allows developers to refactor it into space-saving functions, and the built-in CPPCHECK-CLEANUP tool, which checks for issues such as stylistic errors or unused functions.
 
 
[[Image:Simian_analysis_sample_output.PNG]]
 
 
''Sample output of Simian similarity analyzer. Screenshot courtesy of BRL-CAD wiki.''
 
 
[[Image:CPPCHECK-CLEANUP_sample_output.PNG]]
 
 
''Sample output of CPPCHECK-CLEANUP tool. Screenshot courtesy of BRL-CAD wiki.''
 
 
BRL-CAD enforces the practice of strict compilation, treating all of the compiler’s warnings as matters that have to be resolved before development can proceed. Any detected issues that are in actual fact errors can thus be fixed. Even incorrectly detected errors are often due to weaknesses in the code and can also be dealt with.
 
 
Finally, BRL-CAD has since 2006 participated in the Coverity Scan Initiative, where a thorough source code analysis is performed and a list of detected problems generated. In 2012, a team of core developers met up in person and fixed over fifteen hundred of the issues reported in the latest scan. This reduced BRL-CAD’s defect density to just 0.22 defects per thousand lines of code- less than a quarter of the industry average.
 
 
[[Image:CoverityExample2.png]]
 
 
''Coverity analysis showing secure coding suggestions. Image courtesy of BRL-CAD wiki.''
 
 
Through a range of comprehensive guidelines and tools that help contributors to ensure that their code abides by these rules, BRL-CAD can thus be developed and contributed to by numerous programmers from across the globe while simultaneously maintaining a high standard and consistency of code, ultimately resulting in a feature-packed yet well-refined software for the larger community.
 
 
==== Anita Leung: Choose BRL-CAD ====
 
 
https://vimeo.com/83215836
 
 
BRL-CAD is a powerful modeling system consisting of more than a million lines of C/C++ code. If you are an ambitious developer, dedicate your passion toward this robust open source project. Practice your abilities and build your assets. BRL-CAD is downloaded and used thousands of times each month by people all around the globe; let your contributions be shared among others. Collaborate with a community of same interests. and join the team today.
 
  
 
----
 
----
========Marie Gita Ribeiro : DISCOVER BRL-CAD===========
 
http://www.youtube.com/watch?v=whnRqAS-UZs&feature=youtu.be
 
 
This free open source modelling system is perfect for anyone interested in and passionate about design. Utilize the endless tools at your disposal as you design with real materials and work with volume and content not just the surface. BRL-CAD is one of the oldest CAD in the world but just keeps getting better thanks to a community of contributors from all over the world. If you still haven't; discover BRL-CAD for yourself and unleash your creativity.
 
  
 
== Idea Hopper ==
 
== Idea Hopper ==

Please note that all contributions to BRL-CAD may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see BRL-CAD:Copyrights for details). Do not submit copyrighted work without permission!

To edit this page, please answer the question that appears below (more info):

Cancel Editing help (opens in new window)