2014 Google Summer of Code

Here's the place for discussion related to coding in FreeCAD, C++ or Python. Design, interfaces and structures.
User avatar
yorik
Site Admin
Posts: 11645
Joined: Tue Feb 17, 2009 9:16 pm
Location: São Paulo, Brazil
Contact:

Re: 2014 Google Summer of Code

Postby yorik » Sun Jan 26, 2014 9:13 pm

I'm also curious about GSOC but afraid that it takes quite some time to do the mentoring and paperwork, and that, seeing how long it can take to "enter" the FreeCAD/opencascade world, that there is little chance to see student works resulting in something usable in the allocated time. I have a friend who mentored GSOC students with blender, I'll ask him to comment...

That said, indeed a couple of frequent blender contributors nowadays are ex-GSOC students.Usually they don't finish the project in time, but some continue to work on it. After all, if it doesn't take too much of our time, why not? We have little to loose, right? Maybe by putting all of our brains together, we could come with a list of tasks that would be good GSOC projects.

Sean, if you are still reading the thread, I'm also interested in the rest of your post, about collaboration. I'd like to know more about what you have in mind, how you see possible convergence points between the 2 projects. Thanks for the offer anyway!
ulrich1a
Posts: 1920
Joined: Sun Jul 07, 2013 12:08 pm

Re: 2014 Google Summer of Code

Postby ulrich1a » Mon Jan 27, 2014 10:35 pm

Depending on what is attractive to some students, there could also be work done like:
- Port FreeCAD from python 2 to python3.
- Make coin3d compiling on actual versions of gcc and VC.
- Make a toolchain for FreeCAD to compile with mingw as alternative compiler on windows.
- Make coin3d aware of modern concepts of GLSL-shaders.
This may be doable for IT-students without knowledge of OCC.
Just thoughts.
Ulrich
jmaustpc
Posts: 9619
Joined: Tue Jul 26, 2011 6:28 am
Location: Australia

Re: 2014 Google Summer of Code

Postby jmaustpc » Tue Jan 28, 2014 5:18 am

Hi Sean

Is there something that BRL-CAD can do that FreeCAD can't, or that it can do better? If so perhaps that is a good place to start to look and see if there is some mutually beneficial way we could work together?

Have you seen what the OpenSCAD guys have done with their workbench in FreeCAD? I wonder if something similar could be done with BRL-CAD.

Another thought for a student could perhaps be to work out how to build Windows versions from Linux. Although to me that sounds like an obvious feature that many projects might want, so there could already be a project to do this in a more generic way, possibly using Wine. I haven't research it myself.

Jim
wmayer
Site Admin
Posts: 15277
Joined: Thu Feb 19, 2009 10:32 am

Re: 2014 Google Summer of Code

Postby wmayer » Tue Jan 28, 2014 9:09 am

- Make a toolchain for FreeCAD to compile with mingw as alternative compiler on windows.
FreeCAD already compiles fine using the MinGW compiler.
- Make coin3d aware of modern concepts of GLSL-shaders.
Coin3d supports GLSL shaders but until now we never made of it in FreeCAD https://bitbucket.org/Coin3D/coin/src/a ... at=default
User avatar
yorik
Site Admin
Posts: 11645
Joined: Tue Feb 17, 2009 9:16 pm
Location: São Paulo, Brazil
Contact:

Re: 2014 Google Summer of Code

Postby yorik » Tue Jan 28, 2014 7:55 pm

wmayer wrote:Coin3d supports GLSL shaders but until now we never made of it in FreeCAD https://bitbucket.org/Coin3D/coin/src/a ... at=default
That is the kind of thing I was referring to in another post... There is still a lot to explore in coin. One day we will really have a very impressive 3D view...

My friend Dalai commented on GSOC:
Dear all, Yorik asked me to share my 2 cents on that matter. I mentored 3 GSoC students in the past. As a mentor I can say it doesn't take a lot of time to do my work properly. That said, I didn't mentor 2013 due to lack of time. So time availability is certainly something to bear in mind (even though Google pays a symbolic fee for the mentors).

The first thing to have in mind is that GSoC does NOT aim at adding real code to the projects in the SHORT term. The overall idea is to expand the number of people interested in coding for your project, have a chance at experimenting with areas of code of uncertain results, and only eventually, to get the code back in trunk/master.

All my mentored students were coders already involved with Blender development. So the GSoC was a chance for them to dedicate full-time to something they were doing as volunteers before. Even then, some of the code didn't make into trunk, given that some times they took the GSoC as a chance to try something new which wasn't in "master" state by the end of the Summer.

Overall I would say it's worth the try. We had some quite successful projects over the last GSoCs, and they made into nice additions to the Blender team and the Blender code.

Another important thing to bear in mind is to avoid over-complicated goals. A lot of the time small short goals work better at GSoC. We even had some exclusive bugfixing projects which proved very successful (even if it's not very exciting).
This is interesting... Indeed if we do it we shouldn't do it expecting to get ready, mergeable code, but rather pieces of experimental features.
mrlukeparry
Posts: 655
Joined: Fri Jul 22, 2011 8:37 pm
Contact:

Re: 2014 Google Summer of Code

Postby mrlukeparry » Tue Jan 28, 2014 9:30 pm

yorik wrote:Another important thing to bear in mind is to avoid over-complicated goals. A lot of the time small short goals work better at GSoC. We even had some exclusive bugfixing projects which proved very successful (even if it's not very exciting).
I heartly agree with the last bit. There's nothing stopping a project that is experimenting but I think it would be more valuable for the users + developers if we had a smaller contribution that actually got merged back into master.

E.g. I know we seldom touch sketcher nowadays for stability reasons there are still alot of little tasks that need to be done for improving the user interaction - e.g. toggling constraints. This is quite a nice isolated area that doesn't require any particular knowledge of OpenCascade.

Similarly there are several user interface jobs that need doing - e.g. converting to the new Units Framework widgets.

I think regardless of if we participate or not we should always have a list of 'junior jobs' to help people who would like to get involved start more easily. So I agree with yorik that we should have some idea page on a wiki split into categories. *I don't think clogging up mantis is necessary.
brlcad
Posts: 8
Joined: Thu Jan 23, 2014 8:05 pm

Re: 2014 Google Summer of Code

Postby brlcad » Tue Jan 28, 2014 11:24 pm

Apologies in advance on the length! I'm in awe at the amount of incorrect misinformation attributed to BRL-CAD, but this is very educational as it is an outsider CAx group perspective. Thanks to everyone that responded thus far. As jreinhardt noted, this is interesting albeit somewhat off-topic to the offer in hand. That said, here's some points I cannot resist responding:
jriegel wrote:There are obvious things, like STEPcode, where it make sense to collaborate. But other then this? What do you have in mind?
STEPcode is more than enough in my opinion, but any shared import or export linkage would be a win. Anything we could turn into a common library is a possibility (e.g., 3D PDF, 2D geometry lib, GD&T lib, GCode lib, etc). Ideally, something that can be licensed as openly and future-proof as possible (e.g., bsd/mit/apache2).
jriegel wrote:This thought of an "Umbrella project" is very interesting. I think such a bundling and coordinating the CAx efforts in FOSS is a worthwhile task on its own. But it would need a different name. I don't think I want to see FreeCAD subsumed under BRL-CAD ;). To be honest, excuse my bluntness, I don't see BRL-CAD going anywhere. Script based CSG modeling was abandoned by the industry 20 years ago, and trying to teach a 30 year old code base new tricks is a hopeless task. Your supported system list reads like a museum inventory and I'm sure the US military complex have abandoned BRL-CAD a long time ago.
The bluntness is appreciated, if incorrect. ;) Our docs and site are very dated and we're too busy writing code to promote everything we do as well as we should. BRL-CAD has more than 10 years of full-time effort getting invested every year. In perspective, this is about as much invested as there is in Blender. We just have historically sucked at marketing, usability.

The offer is only under BRL-CAD as an umbrella organization, but you would solicit and review your own students. If that's a non-starter, then we can stop. I'm working on establishing an open source foundation but that won't be in place for this year.
keithsloan52 wrote:First impressions was that it did not look easy to use and would probably have a step learning curve. To me it looked very dated, but of course I could be wrong on all these initial reactions.
Our learning curve is legendary, something we're actively working on improving in a big way but all behind the scenes. We make Emacs look easy. However, even today we do FAR more than our tutorials indicate and much more than CSG. Just like NX, we're evolving into something quite different from where we came from. This talks about our priorities: http://brlcad.org/BRL-CAD_Priorities.png
jriegel wrote:BRL-CAD itself is a CSG modeler, which has the very special problem to support STEP. Cause STEP is BRep driven - as all modern modelers. So BRL-CAD has a very special problem there.
Not true. AP214 and AP242 have full support for CSG, but we still convert to Brep as needed and focus on AP203 (thanks to GSoC and other funded efforts). We have a STEP AP203 importer beta working now. We're in the middle of implementing an exporter, scheduled to be completed by the end of summer.

We spend thousands obtaining the ISO spec documents and helped establish the STEPcode effort as it's own project after several years working on it because of the importance of the format and relative scarcity of STEP specification details amongst open source devs.
jriegel wrote:Im already in the process of incorporating portions of STEPcode into the Import module.
This is great to hear.
jriegel wrote:I tried to find some models done in BRL-CAD, with very little luck. There are pictures of tanks and deep space probes, some STEP imported stuff, but not much else. Also tried to find tutorial in YouTube, again no luck. Only a nice promotion video.....
Most of the best showcase material on BRL-CAD cannot be publicly shared. I can say that there is a full model of nearly every military asset (foreign and domestic) that has been fielded in the last 50 years (i.e., hundreds of exceptionally detailed down-to-the-nut-bolt-and-wire models). BRL-CAD is actively used by a number of governments. It's the best in the world in a few critical areas. Gladly share more over a glass of Scotch (or beer/wine if that's your thing).
jreinhardt wrote:1) I do not know whether I can allocate the resources necessary to mentor a student properly. Does anybody know how much time mentoring takes?
2) I do not know anything about BRL-CAD. So probably it would be good to have someone from BRL-CAD who is able to answer BRL-CAD questions.
Excellent questions. 1> I generally ask mentors expect a commitment of 8 hours a week, 1 day a week, or about an hour a day to respond to e-mails, review activity, ask questions, etc. That's amortized. In actuality, there are rockstar students that require very little time and others that require double. 2> A student allocated would be working on FreeCAD, not BRL-CAD, but we do have a hoard of mentors to field questions if needed for some collaborative design point.
yorik wrote:Sean, if you are still reading the thread, I'm also interested in the rest of your post, about collaboration. I'd like to know more about what you have in mind, how you see possible convergence points between the 2 projects. Thanks for the offer anyway!
Thanks! It's been useful to see this discussion evolve, and I did lest my defensiveness of BRL-CAD would have taken the discussion further off-topic prematurely. I know there's quite a chasm between our communities (and I'm sure mutual misunderstanding), which is the point for reaching out to see if we can at least start a dialog. If not this year, perhaps next year under a foundation.
jmaustpc wrote:Is there something that BRL-CAD can do that FreeCAD can't, or that it can do better? If so perhaps that is a good place to start to look and see if there is some mutually beneficial way we could work together?
I don't think I'm familiar enough with FreeCAD to answer that with due justice, but our strengths are in conversion formats, geometry representation (there's not much we cannot represent implicit or explicit, NURBS, meshes, volumetric, etc), and geometric analysis (e.g., ray tracing for analysis and other CAE purposes). Conversion seems obvious. Modularizing your use of OpenCASCADE so we could explore putting BRL-CAD under your hood in the future also comes to mind, but I realize that may be heresy to this crowd. :)

In all, thanks again for all the responses. The general gist I'm hearing is that there are some possibilities but far from a consensus of merit for participating this year. Is that a fair characterization? If so, that's fine and it's perhaps something to keep in mind for us to work towards next for year.

Cheers!
Sean
jmaustpc
Posts: 9619
Joined: Tue Jul 26, 2011 6:28 am
Location: Australia

Re: 2014 Google Summer of Code

Postby jmaustpc » Wed Jan 29, 2014 3:09 am

brlcad wrote: jmaustpc wrote:Is there something that BRL-CAD can do that FreeCAD can't, or that it can do better? If so perhaps that is a good place to start to look and see if there is some mutually beneficial way we could work together?



I don't think I'm familiar enough with FreeCAD to answer that with due justice, but our strengths are in conversion formats, geometry representation (there's not much we cannot represent implicit or explicit, NURBS, meshes, volumetric, etc), and geometric analysis (e.g., ray tracing for analysis and other CAE purposes). Conversion seems obvious. Modularizing your use of OpenCASCADE so we could explore putting BRL-CAD under your hood in the future also comes to mind, but I realize that may be heresy to this crowd. :)
Hi Sean
we are all interested in FOSS interoperability and the like. A lot of FreeCAD functionality comes from libraries.

I highly recommend that you download and/or compile, a "as recent as possibly" FreeCAD and try it out. I think you will find it is very easy to use and it contains a lot of functionality. look at the current master or Ubuntu daily PPA, the last so called official release version is now too old to give you a good idea of where FreeCAD is up to today.

Have a look at the OpenSCAD workbench, you could incorporate BRL-CAD in a similar way. The OpenSCAD workbench is mostly written in Python.

I am genuinely interested to hear what benefits BRL-CAD has over FreeCAD. I have it installed on my machine but I can not get it to do anything..it is just too difficult to begin with. Conversely however, FreeCAD is very easy and intuitive, so it will only take you a few minutes to make a far more fair and reasonable comparison than I could going in the other direction. :-)

FreeCAD can already do (in some cases with some limitations) all the things you listed above.

I read somewhere that BRL-CAD has ballistics abilities...by which I think it means functions related to penetration of armer etc.? Does it do Kinetics?

Please try FreeCAD and come back to us, I am very interested to hear your response. Just make sure you have as recent as possible version as a lot is changing. The new Assembly workbench is at an early stage of development but is functional and will be going into master soon. Once you have tried FreeCAD from git "master" it might be worth your while to have a quick look at the Assembly version.

If you need any help in doing the above, please ask, we will be happy to help.

Jim
User avatar
yorik
Site Admin
Posts: 11645
Joined: Tue Feb 17, 2009 9:16 pm
Location: São Paulo, Brazil
Contact:

Re: 2014 Google Summer of Code

Postby yorik » Wed Jan 29, 2014 12:05 pm

I'll have a new look at BRL-CAD too, it's been years since last time I checked it...
keithsloan52
Posts: 1090
Joined: Mon Feb 27, 2012 5:31 pm

Re: 2014 Google Summer of Code

Postby keithsloan52 » Wed Jan 29, 2014 9:11 pm

I found this blog comparison of BRL-CAD and FreeCAD http://blog.fridoverweij.com/20_3_2013_CAD.php

He seems to have given up early :( on FreeCAD because of the lack of the assembly module.
Roll on 0.14 going GA