Thread: [brlcad-devel] Interested in development of BRL-CAD, as a research/idea paper for my undergraduate
Open Source Solid Modeling CAD
Brought to you by:
brlcad
From: Kaushik S. <hum...@gm...> - 2011-10-15 12:13:38
|
Hello everyone, I'm new here, so let me introduce myself. My name is Kaushik Subramaniam and I'm a mechanical engineering student from Chennai, Tamil Nadu, India. I'm 20 years old and in the final year of my undergraduate course. My final semester for this course, requires the submission of a final year project/thesis in the field of mechanical engineering. We have three broad categories to choose from to decide our project topic: Design, Thermal and Manufacturing. My interest primarily lies in Design, since I've always been interested in computer aided designing. I have completed 3 courses relating to computer aided designing (theoretical) during my university course timeline. I also have experience working on different CAD/CAM softwares (practical), as a part of my undergraduate course. So, I've decided to pursue my final year project in the area of CAD/CAM. I also have a background in computer science, with interest in programming. I'm a part time web-developer and I have familiarity with programming in C,C++,php and javascript. Though, I don't have a strong background in it (It's also been a while since I did some serious coding. The last thing i developed was the Othello board game with a computer opponent in C++ nearly four back), I'm willing to learn more and gain experience. I believe in open source and see myself as becoming an open source developer in the future. I follow many open source projects, but this is my first attempt to contribute to one. I'm greatly interested in the development of free software, and I want to be a part of it. With these things in mind, I came across BRL-CAD and thought I could use this opportunity to contribute code to a major open source project, gain experience as an open source developer, complete my final year project and learn along the way. This would also be a good start for me, to contribute more not just to BRL-CAD, but to other open source projects also even after the completion of my project. I've downloaded the software and I'm still playing around with it. This would be the first step for me. Though, I need to decide on a project title to start progress. My project submission date is sometime in the 2nd week of April. I guess, this gives me a lot of time to develop valuable code for BRL-CAD. I went through the wiki pages and I have an idea of the project titles that are published on those pages. I went through the project titles under the GSOC 2011 page, the ESA summer of code page, developer documents etc. I really like the GSOC project ideas and I would like to pursue one of those, if it's not already chosen by some other student who is participating. These are the project categories I'm interested in: NURBS projects Geometry conversion projects Rendering and Analysis projects Geometry processing projects High-priority space projects I've chosen the above categories, since my scope is restricted to CAD concepts such as B-splines, ray-tracing, geometry processing etc. which are all a part of my academic curriculum. I'm still facing difficulty choosing a project title, therefore I thought I'll first establish communication with the group before i take any more steps. Although many students would "use" a CAD software to do design and analysis of some component, I'm more interested in understanding the concepts and technology used in CAD softwares. For example, one of my friends is doing a finite element analysis of bike helmets. My interest lies in understanding a CAD concept, developing algorithms and code based on it, and finally visualize it's implementation. Let's say I choose NURBS intersections as my project title. This would mean, 1. I do research and understand the concepts of NURBS in more detail to understand it's implementation in other CAD softwares, and how i can improve on it. 2. Develop algorithms based on those results. 3. Write code to develop a patch 4. Visualize impacts of the code written. 5. As a final step, I also want to understand the application of the code written in real life. Something like a case study, to see exactly how this patch can help design real-life products. I'm also interested in the High-priority space projects. Projects related to simulation of gravity, density etc. sound really cool. But would these projects be apt for a student like me? This is just an example of how I want my project to be structured. I'm still in need of more guidance from experienced BRL-CAD developers. Are there any research intensive areas of development in BRL-CAD? What would be suitable for a final year student like me to do his final year project with BRL-CAD? I'm open to any kind of suggestions with regards to this. Looking forward to your replies and to a future of developing code for BRL-CAD. Cheers, Kaushik |
From: Christopher S. M. <br...@ma...> - 2011-10-15 16:14:25
|
Hello Kaushik! On Oct 15, 2011, at 8:13 AM, Kaushik Subramanian wrote: > I also have a background in computer science, with interest in programming. I'm a part time web-developer and I have familiarity with programming in C,C++,php and javascript. Though, I don't have a strong background in it (It's also been a while since I did some serious coding. The last thing i developed was the Othello board game with a computer opponent in C++ nearly four back), I'm willing to learn more and gain experience. As long as you're willing to learn, there are projects for any skill level. ;) > I believe in open source and see myself as becoming an open source developer in the future. I follow many open source projects, but this is my first attempt to contribute to one. I'm greatly interested in the development of free software, and I want to be a part of it. Outstanding! > I've downloaded the software and I'm still playing around with it. This would be the first step for me. Though, I need to decide on a project title to start progress. My project submission date is sometime in the 2nd week of April. I guess, this gives me a lot of time to develop valuable code for BRL-CAD. You're starting out great, too, with this introduction. Especially with the big codes, it can be easy to get lost. Nobody expects you to figure everything out solo so asking questions is a good way to begin. > I've chosen the above categories, since my scope is restricted to CAD concepts such as B-splines, ray-tracing, geometry processing etc. which are all a part of my academic curriculum. As I'm sure you're aware, those are still very broad categories but it is a start at narrowing in on a topic. Which ones interest you the most or sound the most interesting? > Let's say I choose NURBS intersections as my project title. This would mean, > > 1. I do research and understand the concepts of NURBS in more detail to understand it's implementation in other CAD softwares, and how i can improve on it. > 2. Develop algorithms based on those results. > 3. Write code to develop a patch > 4. Visualize impacts of the code written. > 5. As a final step, I also want to understand the application of the code written in real life. Something like a case study, to see exactly how this patch can help design real-life products. It sounds like you have a pretty firm grasp on the steps that would need to be taken for any project you select. The long pole in that tent is going to be step 3. You'll find something you want (e.g., intersect NURBS), read a research paper and design an algorithm (e.g., find the intersection curves, trim the surfaces, restitch), but then figuring out how to implement that in code will be ... relatively very hard. ;) Some projects, like NURBS, are going to require either very strong math skills or very strong programming skills, others are going to be very hard to conceptualize but relatively easy to implement. I'd suggest picking a topic that interests you, that you are at least somewhat familiar with, then narrow in on a feature (something that you could build on) and starting there. > I'm also interested in the High-priority space projects. Projects related to simulation of gravity, density etc. sound really cool. But would these projects be apt for a student like me? Absolutely, many of them are suitable. Abhijit is already working on the integration of a gravity simulation system now, so that wouldn't be my first choice. You could, however, collaborate or work on a separate portion, like an animation interface in the GUI or a panel that configures simulation properties. That's just one of many ideas, though. > This is just an example of how I want my project to be structured. I'm still in need of more guidance from experienced BRL-CAD developers. Are there any research intensive areas of development in BRL-CAD? What would be suitable for a final year student like me to do his final year project with BRL-CAD? I'm open to any kind of suggestions with regards to this. Tons. NURBS is definitely the hot topic, but is also one of the hardest. If you're up for it, tessellation of NURBS geometry (i.e., converting a set of trimmed NURBS surfaces into a polygonal mesh) would be a great self-contained project that isn't "too hard". Converting implicit CSG geometry to NURBS CSG geometry would be another great idea as it doesn't involve strong math but does require understanding differences in geometric representations in memory. On a completely different angle, writing a geometry exporter for the ISO 10303 STEP format is less math-intensive, but fits strongly with your topic theme (as it is the dominant CAD interchange format). Several potential topics to chose from, but those are three that would probably fit well with your timeline and background. Cheers! Sean |
From: Abhijit N. <abh...@gm...> - 2011-10-15 17:03:26
|
Hello Kaushik, > Tons. NURBS is definitely the hot topic, but is also one of the hardest. If you're up for it, tessellation of NURBS geometry (i.e., converting a set of trimmed NURBS surfaces into a polygonal mesh) would be a great self-contained project that isn't "too hard". Ah, now thats vetting my interest in NURBs :). So I see that Sean already replied. To add on to it, perhaps you can try to play around with some of the NURBS geometry code in BRL-CAD first before deciding. Simulation is also a great idea and I can help you get started in the related code. Solid modeling is a bit different from how one would proceed with 3D modeling tools like 3DS Max, so you can try some of the tutorials and example programs first. Also if you hang around in IRC then you can get a lot of info from developers who have known and are familiar with the software for a long time. Regards, Abhi |
From: Kaushik S. <hum...@gm...> - 2012-02-13 19:57:17
|
Hello everyone, Thanks for your replies! I know it's been four months since I posted on this thread, but I'm still interested in doing the project. I've been caught up with university course work and other parts of my project. I apologize for the lack of communication. So, my project timeline started in the first week of December. The total time required for this project is 4 months. That's a month in December and then February to May (1st week of May is the submission). I've titled my project: *"Analysis, Effective implementation and Applications of NURBS in CAD"* The month of January was dedicated to completing my university course work for the final semester, leaving the next three months (Starting from the 1st week of Feb), for project development. Instead of doing just a coding project, I thought I'll expand the scope of my project to also front-end analysis using CAD softwares. I used the entire of December to do the analysis part of the project. In this time period, I studied the applications and features of NURBS in different CAD softwares (Open source and Proprietary). Analysis would mean how effectively an algorithm is implemented in different softwares. Though I've made some progress in that part of my project, I'm still not very convinced as to how I can compare different implementations of the concept of NURBS. I have a few questions regarding this: 1. Which are the CAD softwares that I should compare for the best implemented models? 2. On what basis do i compare? ( I was thinking the visual output and the algorithmic output) 3. When comparing algorithms, what factors do I use to compare? ( Like runtime, effectiveness etc.) After doing this sort of analysis, It would enable me to understand the problems and advantages of different NURBS implementations across different CAD softwares. I am then planning to effectively implement NURBS in CAD (Choosing one of the NURBS projects in the project ideas page. "Effective implementation" would mean to atleast "try" and make a more effective model compared to other softwares. I really don't know how I can achieve that. Would need guidance on that, Is it possible to build a better algorithm than the ones that are out there?). After implementation, I want to study the outputs using BRL-CAD(Applications). As far as the project idea is concerned, I thought I could pursue the project of converting basic implicit models to NURBS format. I found this project on the following link: http://brlcad.org/wiki/Implicit_to_NURBS_conversion First off, I want to know if this project is the same as the one found on this link titled "Implicit-to-NURBS"?: http://brlcad.org/wiki/NURBS_TODO#Implicit-to-NURBS And I had a doubt about the CSG/BREP functionality in BRL-CAD. So is NURBS implemented only using BREP or also CSG? (I could understand that since NURBS is a surface representation format, that BREP would be more apt). But, is it possible to implement NURBS using CSG? My aim is to try and work on some smaller NURBS projects on the TODO page before getting into converting implicit primitives. This could help me in understanding NURBS better and would also give me more experience with it. Some suggestions for smaller projects would be of great help! So, by conversion of implicit models, does it mean that I need to convert all the primitives listed on this page: http://brlcad.org/wiki/BRL-CAD_Primitives to NURBS representations? How many of those are already converted to NURBS? As far as my understanding of NURBS is concerned, I've been studying the basic equation and its derivation. I have learnt about Control points, weights, knot vectors and degrees of curvatures and how these parameters are necessary to draw a NURBS curve or surface.I had a few questions regarding it: 1. Can we modify a NURBS curve only by changing the knot values and control point values? 2. How do we know what set of knot values and control points would give what curve/surface? 3. So is every primitive shape that I need to code, differing only in knot values, no. of control points and the BREP structure? 4. Would this entire project be just to modify the knots, control points and BREP structure of the different primitives I need to code? I also want to know if I have enough time to complete this project? My mathematical fundamentals are pretty strong and I understand the concept behind NURBS. I've been reading up from different links about NURBS equations and properties of NURBS curves. Is there anything more than the fundamental NURBS equation that I need to learn for this project? Finally, Is this a time intensive project? Would I be able to complete it before the first week of May? I am very excited to work on this project and would love support from you guys. Again, I apologize for the lack of communication and the overload of questions on one single email. A continuous and sustained relationship is important for productivity, I promise to be more active on the mailing lists and IRC. Thank you, Kaushik On Sat, Oct 15, 2011 at 10:33 PM, Abhijit Nandy <abh...@gm...>wrote: > Hello Kaushik, > > > > Tons. NURBS is definitely the hot topic, but is also one of the > hardest. If you're up for it, tessellation of NURBS geometry (i.e., > converting a set of trimmed NURBS surfaces into a polygonal mesh) would be > a great self-contained project that isn't "too hard". > > Ah, now thats vetting my interest in NURBs :). > > So I see that Sean already replied. To add on to it, perhaps you can try > to play around with some of the NURBS geometry code in BRL-CAD first before > deciding. Simulation is also a great idea and I can help you get started in > the related code. Solid modeling is a bit different from how one would > proceed with 3D modeling tools like 3DS Max, so you can try some of the > tutorials and example programs first. > > Also if you hang around in IRC then you can get a lot of info from > developers who have known and are familiar with the software for a long > time. > > Regards, > Abhi > > > ------------------------------------------------------------------------------ > All the data continuously generated in your IT infrastructure contains a > definitive record of customers, application performance, security > threats, fraudulent activity and more. Splunk takes this data and makes > sense of it. Business sense. IT sense. Common sense. > http://p.sf.net/sfu/splunk-d2d-oct > _______________________________________________ > BRL-CAD Developer mailing list > brl...@li... > https://lists.sourceforge.net/lists/listinfo/brlcad-devel > > |
From: Kaushik S. <hum...@gm...> - 2012-02-22 11:36:52
|
Hey guys, A response would be awesome! I'm right now running BRL-CAD on an ubuntu 11.10 OS. I installed it from the binary (.deb) distribution. This seems to work fine for me. I've been playing around with the different functions of MGED. I still haven't gotten to using the "archer" and "rtwizard" applications. I had problems with building from source! I installed all necessary library files as suggested in the README.Linux file, but I'm getting warnings and errors when I try to build it (using make). If building from source code works fine, I can actually start testing codes from my end. Can someone please guide me through building BRL-CAD on Ubuntu? I'm getting different make errors on my system. Also, is there a point person for NURBS development in BRL-CAD? I'm looking for someone who can give me a walkthrough about developing NURBS for BRL-CAD. So far, all the research I've been doing is only individually. It would be good if someone can guide me, so that i won't feel lost. I'm also on the IRC channel as "Kaushik". Thank you, Regards, Kaushik On Tue, Feb 14, 2012 at 1:27 AM, Kaushik Subramanian < hum...@gm...> wrote: > Hello everyone, > > Thanks for your replies! I know it's been four months since I posted on > this thread, but I'm still interested in doing the project. I've been > caught up with university course work and other parts of my project. I > apologize for the lack of communication. > > So, my project timeline started in the first week of December. The total > time required for this project is 4 months. That's a month in December and > then February to May (1st week of May is the submission). > > I've titled my project: > > *"Analysis, Effective implementation and Applications of NURBS in CAD"* > > The month of January was dedicated to completing my university course work > for the final semester, leaving the next three months (Starting from the > 1st week of Feb), for project development. Instead of doing just a coding > project, I thought I'll expand the scope of my project to also front-end > analysis using CAD softwares. I used the entire of December to do the > analysis part of the project. In this time period, I studied the > applications and features of NURBS in different CAD softwares (Open source > and Proprietary). Analysis would mean how effectively an algorithm is > implemented in different softwares. Though I've made some progress in that > part of my project, I'm still not very convinced as to how I can compare > different implementations of the concept of NURBS. I have a few questions > regarding this: > > 1. Which are the CAD softwares that I should compare for the best > implemented models? > 2. On what basis do i compare? ( I was thinking the visual output and the > algorithmic output) > 3. When comparing algorithms, what factors do I use to compare? ( Like > runtime, effectiveness etc.) > > After doing this sort of analysis, It would enable me to understand the > problems and advantages of different NURBS implementations across different > CAD softwares. I am then planning to effectively implement NURBS in CAD > (Choosing one of the NURBS projects in the project ideas page. "Effective > implementation" would mean to atleast "try" and make a more effective model > compared to other softwares. I really don't know how I can achieve that. > Would need guidance on that, Is it possible to build a better algorithm > than the ones that are out there?). After implementation, I want to study > the outputs using BRL-CAD(Applications). > > As far as the project idea is concerned, I thought I could pursue the > project of converting basic implicit models to NURBS format. I found this > project on the following link: > > http://brlcad.org/wiki/Implicit_to_NURBS_conversion > > First off, I want to know if this project is the same as the one found on > this link titled "Implicit-to-NURBS"?: > > http://brlcad.org/wiki/NURBS_TODO#Implicit-to-NURBS > > And I had a doubt about the CSG/BREP functionality in BRL-CAD. So is NURBS > implemented only using BREP or also CSG? (I could understand that since > NURBS is a surface representation format, that BREP would be more apt). > But, is it possible to implement NURBS using CSG? > > My aim is to try and work on some smaller NURBS projects on the TODO page > before getting into converting implicit primitives. This could help me in > understanding NURBS better and would also give me more experience with it. > Some suggestions for smaller projects would be of great help! > > So, by conversion of implicit models, does it mean that I need to convert > all the primitives listed on this page: > > http://brlcad.org/wiki/BRL-CAD_Primitives > > to NURBS representations? How many of those are already converted to > NURBS? > > As far as my understanding of NURBS is concerned, I've been studying the > basic equation and its derivation. I have learnt about Control points, > weights, knot vectors and degrees of curvatures and how these parameters > are necessary to draw a NURBS curve or surface.I had a few questions > regarding it: > > 1. Can we modify a NURBS curve only by changing the knot values and > control point values? > 2. How do we know what set of knot values and control points would give > what curve/surface? > 3. So is every primitive shape that I need to code, differing only in knot > values, no. of control points and the BREP structure? > 4. Would this entire project be just to modify the knots, control points > and BREP structure of the different primitives I need to code? > > I also want to know if I have enough time to complete this project? My > mathematical fundamentals are pretty strong and I understand the concept > behind NURBS. I've been reading up from different links about NURBS > equations and properties of NURBS curves. Is there anything more than the > fundamental NURBS equation that I need to learn for this project? > > Finally, Is this a time intensive project? Would I be able to complete it > before the first week of May? > > I am very excited to work on this project and would love support from you > guys. Again, I apologize for the lack of communication and the overload of > questions on one single email. A continuous and sustained relationship is > important for productivity, I promise to be more active on the mailing > lists and IRC. > > Thank you, > > Kaushik > > > > On Sat, Oct 15, 2011 at 10:33 PM, Abhijit Nandy <abh...@gm...>wrote: > >> Hello Kaushik, >> >> >> > Tons. NURBS is definitely the hot topic, but is also one of the >> hardest. If you're up for it, tessellation of NURBS geometry (i.e., >> converting a set of trimmed NURBS surfaces into a polygonal mesh) would be >> a great self-contained project that isn't "too hard". >> >> Ah, now thats vetting my interest in NURBs :). >> >> So I see that Sean already replied. To add on to it, perhaps you can try >> to play around with some of the NURBS geometry code in BRL-CAD first before >> deciding. Simulation is also a great idea and I can help you get started in >> the related code. Solid modeling is a bit different from how one would >> proceed with 3D modeling tools like 3DS Max, so you can try some of the >> tutorials and example programs first. >> >> Also if you hang around in IRC then you can get a lot of info from >> developers who have known and are familiar with the software for a long >> time. >> >> Regards, >> Abhi >> >> >> ------------------------------------------------------------------------------ >> All the data continuously generated in your IT infrastructure contains a >> definitive record of customers, application performance, security >> threats, fraudulent activity and more. Splunk takes this data and makes >> sense of it. Business sense. IT sense. Common sense. >> http://p.sf.net/sfu/splunk-d2d-oct >> _______________________________________________ >> BRL-CAD Developer mailing list >> brl...@li... >> https://lists.sourceforge.net/lists/listinfo/brlcad-devel >> >> > |
From: brlcad <br...@ma...> - 2012-02-22 19:06:07
|
On Feb 22, 2012, at 06:36 AM, Kaushik Subramanian <hum...@gm...> wrote: A response would be awesome! Kaushik, apologies on the delay responding... usually you'd have gotten a response much sooner. Your long detailed posting warranted a long detailed reply, which simply takes longer. :) I had problems with building from source! I installed all necessary library files as suggested in the README.Linux file, but I'm getting warnings and errors when I try to build it (using make) If building from source code works fine, I can actually start testing codes from my end. Can someone please guide me through building BRL-CAD on Ubuntu? I'm getting different make errors on my system. You should make sure you've downloaded the latest sources from svn: svn checkout https://brlcad.svn.sourceforge.net/svnroot/brlcad/brlcad/trunk brlcad Then, make sure you have cmake installed (along with other dependencies described in the README.Linux file), then you should be able to build with this: cd brlcad mkdir .cmake cd .cmake cmake .. make From there, there should be uninstalled binaries in the brlcad/.cmake/bin directory (such as mged, rtwizard, etc) that should all work If any of those steps fails, share a log of your console output and steps taken here and we can diagnose from there. Also, is there a point person for NURBS development in BRL-CAD? I'm looking for someone who can give me a walkthrough about developing NURBS for BRL-CAD. So far, all the research I've been doing is only individually. It would be good if someone can guide me, so that i won't feel lost. There's several on the dev team familiar with the NURBS work so your best approach is to just ask questions openly. That's the general rule for all BRL-CAD development even when someone specializes in an area simply so that knowledge is better shared amongst everyone else. If you have a question, chances are someone else has or will have a similar question. I'm also on the IRC channel as "Kaushik". Many of us are on IRC 24/7, but don't immediately respond unless we're able to engage in discussion. So if you ask a question there, be prepared to hang around on the channel for a response. I recommend using screen+irssi so you can also stay on IRC 24/7. It's by far the most effective way to discuss development. :) Cheers! Sean p.s. Reply to your earlier longer e-mail still forthcoming.. |
From: Kaushik S. <hum...@gm...> - 2012-02-24 10:06:04
|
On Thu, Feb 23, 2012 at 12:35 AM, brlcad <br...@ma...> wrote: > You should make sure you've downloaded the latest sources from svn: > svn checkout > https://brlcad.svn.sourceforge.net/svnroot/brlcad/brlcad/trunk brlcad > > Then, make sure you have cmake installed (along with other dependencies > described in the README.Linux file), then you should be able to build with > this: > cd brlcad > mkdir .cmake > cd .cmake > cmake .. > make > > From there, there should be uninstalled binaries in the brlcad/.cmake/bin > directory (such as mged, rtwizard, etc) that should all work. If any of > those steps fails, share a log of your console output and steps taken here > and we can diagnose from there. > I followed the steps on the INSTALL file and installed all required dependencies listed out in the README.Linux file. Will try out the above procedures and post changes. Many of us are on IRC 24/7, but don't immediately respond unless we're able > to engage in discussion. So if you ask a question there, be prepared to > hang around on the channel for a response. I recommend using screen+irssi > so you can also stay on IRC 24/7. It's by far the most effective way to > discuss development. :) > Will do! Thanks a ton for the big response! Looking forward to working with you guys. Cheers, Kau |
From: brlcad <br...@ma...> - 2012-02-22 19:52:10
|
So, my project timeline started in the first week of December. The total time required for this project is 4 months. That's a month in December and then February to May (1st week of May is the submission). So you basically have 9 or 10 weeks remaining... :) "Analysis, Effective implementation and Applications of NURBS in CAD" That's a rather broad topic category. You have your work cut out for you, but you must narrow your focus. You don't have nearly enough time to do everything you are asking about. Both methods of implementation and applications domains are two very broad categories on their own that you could write a book on. I'd suggest focusing on a coding project over applications of CAD since it may be more easily planned, measured, and achieved. The month of January was dedicated to completing my university course work for the final semester, leaving the next three months (Starting from the 1st week of Feb), for project development. Instead of doing just a coding project, I thought I'll expand the scope of my project to also front-end analysis using CAD softwares. I used the entire of December to do the analysis part of the project. In this time period, I studied the applications and features of NURBS in different CAD softwares (Open source and Proprietary). Analysis would mean how effectively an algorithm is implemented in different softwares. Though I've made some progress in that part of my project, I'm still not very convinced as to how I can compare different implementations of the concept of NURBS. I have a few questions regarding this: I suggest sticking to just coding, frankly, since you cannot realistically inspect the implementations of most of the commercial CAD software out there, only the end-behavior result. Moreover, most of the commercial CAD softwares are built on specific commercial geometry kernels, many of which are cross-licensed amongst many of the other CAD systems. So comparing them becomes a very very complex topic. 1. Which are the CAD softwares that I should compare for the best implemented models? The big five are CATIA, AutoCAD, Unigraphics/NX, Pro/ENGINEER, and Solidworks. Like I said, though, those are built on top of geometry kernels such as GRANITE (Pro/E), ACIS (numerous), PADL (NX), and more. [...SNIP...] I'm going to skip a lot of questions from your e-mail because they're more a brain dump than anything. Many of your questions depend on the answers to other questions or are completely off-base. You're all over the place, lacking specific goals, and up against a very specific deadline. So focusing on your coding questions, below are some of the more directed questions. As far as the project idea is concerned, I thought I could pursue the project of converting basic implicit models to NURBS format. I found this project on the following link: http://brlcad.org/wiki/Implicit_to_NURBS_conversion That project will probably take a minimum of a month full-time effort to complete plus another week for overhead and learning time, so you should plan accordingly. Given you only have 9 or 10 weeks remaining, you will need to start immediately if you intend to finish within 9-10 months. With the other analysis work you were proposing, I don't see that happening.. First off, I want to know if this project is the same as the one found on this link titled "Implicit-to-NURBS"?: They are one in the same but at completely opposite ends of the skill and production spectrum. The TODO page assumes rather heavy familiarity with BRL-CAD's implementation and is a rough estimate of the time required to get a proof-of-concept implemented. The Implicit_to_NURBS_conversion wiki page is the "real deal" and more appropriate for your project. You should expect it to take a month minimum to implement plus another month for overhead discussions, learning, documentation, testing, etc, spread throughout. And I had a doubt about the CSG/BREP functionality in BRL-CAD. So is NURBS implemented only using BREP or also CSG? (I could understand that since NURBS is a surface representation format, that BREP would be more apt). But, is it possible to implement NURBS using CSG? That question doesn't make much sense. BREP just means boundary representation. CSG are combinatorial operators on geometry. BREP can technically imply triangulated mesh, polygonal mesh, or spline-surfaces (such as NURBS or Bspline patches). NURBS is the more common BREP form for CAD systems, so that is the focus of our spline-surface boundary representation implementation. CSG operators are _traditionally_ applied to implicit geometry BUT you can also apply them to NURBS or mesh BREP geometry as well. The task you found involves converting geometry that is in non-BREP (i.e., probably implicit) form (with CSG operators) into BREP (i.e., NURBS) form (with CSG operators). My aim is to try and work on some smaller NURBS projects on the TODO page before getting into converting implicit primitives. This could help me in understanding NURBS better and would also give me more experience with it. Some suggestions for smaller projects would be of great help! You don't have time for that. ;) Implicit-to-NURBS or NURBS tessellation is about as simple as it gets and either (but not both) are viable coding projects. Moreover, the time estimates on the NURBS_TODO page would be in units of weeks, not days, for someone getting started (so 2 days becomes 2 weeks minimum). So, by conversion of implicit models, does it mean that I need to convert all the primitives listed on this page: http://brlcad.org/wiki/BRL-CAD_Primitives to NURBS representations? How many of those are already converted to NURBS? Most are already converted, but only as a C API function. There needs to be a command that walks a hierarchy, converts the geometry to NURBS, then writes a new hierarchy. Maybe call the command "brepify". Finally, Is this a time intensive project? Would I be able to complete it before the first week of May? You have time but only if you focus on getting familiar with the code NOW and stop fiddling with comparisons and research. If you do that, you should be able to finish comfortably with time available to document your progress and perform ray trace visualization comparisons. I am very excited to work on this project and would love support from you guys. Again, I apologize for the lack of communication and the overload of questions on one single email. A continuous and sustained relationship is important for productivity, I promise to be more active on the mailing lists and IRC. I strongly suggest breaking your mails up into much smaller chunks. You should have no more than one question per e-mail if you need to get a quick response, plus it should help you prioritize your questions and clarify your goals. Look forward to your follow-up. ;-) Cheers! Sean |
From: Kaushik S. <hum...@gm...> - 2012-02-24 10:00:45
|
Hello Sean, Thank you for the prompt reply. My reply follows: On Thu, Feb 23, 2012 at 1:21 AM, brlcad <br...@ma...> wrote: > > So you basically have 9 or 10 weeks remaining... :) > Yes, which is about the time I need. I'm willing to dedicate 4-5 hours a day for the next 10 weeks to work on this. That is the system in my university. We have 3 whole months off of university to work on our projects. So I'll be working out of home for my project for the next 2 and a half months. That's a rather broad topic category. You have your work cut out for you, > but you must narrow your focus. You don't have nearly enough time to do > everything you are asking about. Both methods of implementation and > applications domains are two very broad categories on their own that you > could write a book on. I'd suggest focusing on a coding project over > applications of CAD since it may be more easily planned, measured, and > achieved. > I agree with you there. I took a broad topic, cause this is the first time I'm even exposed to the back-end of a "CAD" software. It took me some time to learn what exactly being "specific" meant. Now, I have a much clearer idea, since I've been reading up a lot from articles on the official Documentation and the wiki page. This is also my first time with open source, so please bear with me if I'm a bit slow to grasp the general protocols. But yes, simply focusing on a coding project should be more easily planned, measured and achieved. Based on what comes from our discussions here, I'll change my project title to a more apt one. > > I suggest sticking to just coding, frankly, since you cannot realistically > inspect the implementations of most of the commercial CAD software out > there, only the end-behavior result. Moreover, most of the commercial CAD > softwares are built on specific commercial geometry kernels, many of which > are cross-licensed amongst many of the other CAD systems. So comparing > them becomes a very very complex topic. > I've been wondering about this myself. I got this idea of comparing algorithms, from the fact that I could finally compare my output with industry standards on already existing scales of measurement to show the effectiveness of what I've done. *My question was if this was possible? Or would this be possible if I lessened the scope to just open source applications? * If it is tedious like you have mentioned, I'm willing to cut that out off the project scope. > I'm going to skip a lot of questions from your e-mail because they're more > a brain dump than anything. Many of your questions depend on the answers > to other questions or are completely off-base. You're all over the place, > lacking specific goals, and up against a very specific deadline. > I agree and I apologize. My only aim is to learn more about CAD systems and contribute code to the open source community. Since BRL-CAD falls in my field of study, I thought a project with you guys would be really cool. I was being all over the place, cause I've been trying to figure out the software and it's code all by myself. I've been doing a lot of homework, but when I tried to identify my specific goals, I failed. But this is mainly my fault, cause I've been lacking communication when there's a whose listserve of people willing to help me out. I wish to change that from now on. I'll also try to be more coherent with my emails. I also want to clarify that this project wouldn't mark the end of our correspondence. I wish to stay, contribute and gain more experience. That project will probably take a minimum of a month full-time effort to > complete plus another week for overhead and learning time, so you should > plan accordingly. Given you only have 9 or 10 weeks remaining, you will > need to start immediately if you intend to finish within 9-10 months. With > the other analysis work you were proposing, I don't see that happening.. > Agreed. I'm willing to stick to just the coding part of it and start immediately. The Implicit_to_NURBS_conversion wiki page is the "real deal" and more > appropriate for your project. You should expect it to take a month minimum > to implement plus another month for overhead discussions, learning, > documentation, testing, etc, spread throughout. > I didn't know this. Thanks for the clarification! The task you found involves converting geometry that is in non-BREP (i.e., > probably implicit) form (with CSG operators) into BREP (i.e., NURBS) form > (with CSG operators). > This makes things much clearer. You don't have time for that. ;) > > Implicit-to-NURBS or NURBS tessellation is about as simple as it gets and > either (but not both) are viable coding projects. Moreover, the time > estimates on the NURBS_TODO page would be in units of weeks, not days, for > someone getting started (so 2 days becomes 2 weeks minimum). > I can logically understand the implicit-to-NURBS project better than the tessellation one, so I'm sticking to the conversion project. Maybe tessellation can be my next project :). And about the time I have left, like you said, I'm willing to focus on a more specific goal over the next 2 months to complete this project. > Most are already converted, but only as a C API function. There needs to > be a command that walks a hierarchy, converts the geometry to NURBS, then > writes a new hierarchy. Maybe call the command "brepify". > Thanks for this clarification. When I was looking through the source code for primitives, I was sure I saw some BREP and NURBS functions. *This is what you're refering to as C API functions, yeah? * *So, the sole command I'll be working on is "brepify". This command allows users to convert primitives to BREP format. (The specific goal I need to have?)* You have time but only if you focus on getting familiar with the code NOW > and stop fiddling with comparisons and research. If you do that, you > should be able to finish comfortably with time available to document your > progress and perform ray trace visualization comparisons. > *Sounds super! But where do I start? Just start looking into the code to understand the logic?* > I strongly suggest breaking your mails up into much smaller chunks. You > should have no more than one question per e-mail if you need to get a quick > response, plus it should help you prioritize your questions and clarify > your goals. Look forward to your follow-up. ;-) > Again, I apologize for the haphazard manner in which my previous mails were drafted. I promise to improve! |