User:Foposseleger/GSoC 2014 proposal
- 1 Convert Bot to Pipe GSoC Project Proposal
- 1.1 Personal Information
- 1.2 Background Information
- 1.3 Brief Background Information
- 1.4 Programming Background
- 1.5 Project Information
- 1.6 Detailed Project Description
- 1.7 Brief Summary
- 1.8 Introduction
- 1.9 Detailed Description
- 1.10 Deliverables
- 1.11 Development Schedule
- 1.12 Time Availability
- 1.13 Why BRL-CAD ?
- 1.14 Why Me ?
- 1.15 Anything Else?
Convert Bot to Pipe GSoC Project Proposal
Name: Leger Foposse Nyah
Brief Background Information
I am a first year Post graduate student in Computer Science at the University of Yaounde I, Yaounde Cameroon. From my background in Computer Science at the undergraduate level. I worked on various Java SE/Java EE Projects, implemented a simulation program for an elevator in C/C++ which was used for diagnostic purposes. Also, I wrote a 2D game in C++ as part of my pet projects. I am excited to work this year with BRL-CAD since my cousin worked on this great software last year. I am willing to put in 40+ hours weekly to implement the converter for Bot to Pipe; together with my experience in Maths and Algorithms during my undergraduate years.
- Implemented an Elevator simulation program for diagnostic purposes.
- Implemented a 2D Game(Pet project)
Java(Excellent) J2EE,SE :
- Restaurant management system developed for our University(5000+ Lines)
- Implemented a Binary Search Trees together with associated optimizations and graphical interface to simulate the nodes.( 4000+ lines)
- Implemented a Dental simulation program used for Dentists in our local hospitals. ( J2EE, 10000+ lines)
Convert BOT to PIPE Project
This project seeks to convert the BOT surface primitive to pipe to facilitate the the conversion of the "Bag of triangles" solid to native BRL-CAD geometry.
Detailed Project Description
- Determine pipe start and end points
- Determine BoT inner and outer diameters
- Traverse the BoT line placing pipe vertices where necessary
- negotiate line models that have T or Y shaped intersections creating pipe solids for each leg
- utilize the pipe solid bend radius attribute to limit the number of vertices necessary to create a bend
- Apply a vertex reduction algorithm based on user defined tolerances (angular tolerance to define a straight segment)
- Implement options allowing the automatic generation of a fluid component (fuel or hydraulic fluid within the line)
- Implement options that allow for automatic Boolean operations into both line and fluid Regions
BRL-CAD uses the “Bag o’ Triangles” (BoT) primitive object for representing triangle mesh objects. BoT primitives are used for importing component positions from other CAD softwares like Pro-E and Cadio. This designs imported during vulnerability analysis use intermediate formats like STL. This is imported to BRL-CAD through the pipe primitve. This project seeks to implement an accurate Bot to pipe converter which eliminates lags in models for line routing.
In aircraft design, component positions are constantly in flux leading to laggin in models of line routine. However, during vulnerability analysis component positions may miss the correct positions. So during import to BRL-CAD, overlapping issues have to be resolved guaranteeing precision and accuracy. This is done by using intermediate formats like STL.
Due to limitations in the STL format, BRL-CAD employs BoT primitive objects in the importation of design from other high end CAD softwares maintaining precision and correctness. With the BoT primitive, many object could be analysed per file for many files which is an option already supported by BRL-CAD. Also, BoT supports over 3 Bot mesh modes which is highly advantageous over single mode supported by STL.
Furthermore, with the numerous advantages of BoT over STL, like single and double precision, BoT solids have a fundamental problem of inefficient editing. This project seeks to implement the import of designs into BRL-CAD using the pipe primitive most likely from the intermediate STL format.
- Implement a vertex reduction Algorithm based on user defined tolerances.
- Implement options for allowing automatic generation of fluid components and option for automatic boolean operation in line and fluid regions.
- Methods for calculate inner and outer diameters for BoT solid primitives.
- Implement methods for determine pipe start and end points, solid bend radius.
- Computing pipe solids for line model intersections.
Community Bonding period (April 21st to May 19th)( 3 weeks )
- Acquaint myself with necessary version control svn for BRL-CAD.
- Read appropriate documentation and programming regulations of BRL-CAD project.
- Research additional information on BoT solid and pipe primitives and sharpen m y programming skills.
- Work on BRL-CAD's tickets and bugs and earn commit privileges.
Pre mid-term work period (May 19th to June 20th) (2 weeks)
Mid-term evaluation week (June 23rd to June 27th) (1 week)
- Report work done within the pre mid-term work period.
- Fill and submit mid-term evaluation form.
Post mid-term work period (June 30th to August 11th) (2 weeks)
- (2 weeks)
- (2 weeks)
Pencils down week (Aug 11th to Fri 15th) (1 week)
- Final testing, debugging and removing memory leaks within code.
- Documenting the BoT to Type Conveter for BRL-CAD.
Final evaluation week (Aug 18th to Aug 22nd ) (1 week)
- Report work done within the post mid-term work period.
- Fill and submit Final evaluation form.
- Final submission of project code to Google.
Google Summer Of Code Aftermath period
- Continue speeding-up several aspects of BoT to pipe converter.
I'll be available to offer at least 40 hours a week for this project. During periods of examinations, I will code less during weekdays and make sure to catch up during the weekends. When I have events to organise within GDG Bandjoun, I'll take a few hours of during the day to do so and cover up for these lapses by pushing code at night. I'll also regularly communicate the progress with my mentors by chatting on IRC, writing on the mailing list and updating my diary.
Why BRL-CAD ?
First of all, I really believe that software can change the world by providing new technologies and that software should be free. I choose BRL-CAD because it is a not-for-profit technology organization which offers me the opportunity to assist the BRL-CAD organization with tools for computer Aided design and computer graphics. Working with BRL-CAD also helps me contribute over the long-term and gain status within the hacker community based on my mathematical/Computing background and academic interests. Although I have not contributed before to open source ,I see implementing the BoT to Pipe Converter as a long-awaited opportunity to make the world a better place and a jump-start to my continued contribution to open source software through BRL-CAD.
Why Me ?
I am passionate about working with BRL-CAD because I have always enjoyed computing and Mathematical problems. Since my project has to do with BoT to Pipe Converter, I am enthused to work on an efficient and precise solution to this problem. My capacity to excellently communicate in English and French will enable me easily interact with mentors on a regular basis on the mailing list and IRC. With a deep knowledge of mathematics from my post graduate and undergraduate experiences, a deeply ingrained fact-finding habit and professional experience developing software in C/C++, Java,although I have not contributed to open source before, I believe I have the relevant experience to implement the Bot to Pipe converter despite my new experience to CAD.