Google Summer of Code 2023 - Coding! Up to July 10th

Contributions from the participants, questions and answers to their projects.
Discussions of proposals for upcoming events.
Forum rules
Be nice to others! Respect the FreeCAD code of conduct!
Post Reply
User avatar
yorik
Founder
Posts: 13630
Joined: Tue Feb 17, 2009 9:16 pm
Location: Brussels
Contact:

Re: Google Summer of Code 2023 - Call for Ideas

Post by yorik »

There is plenty to look for (basically the wiki), and many here will be able to help. Besides Uwe, @bernd is also a FEM and Materials master. Looking into the Git history of a particular module ( ex https://github.com/FreeCAD/FreeCAD/comm ... rc/Mod/Fem ) also helps finding knowledgeable people.

Also, it can be very good if you are not a FEM master prior to initiating such a project. Since this is mostly about documenting a process, finding information about what you need might become a very interesting part it.

I'd concentrate mainly on what seems like a good workflow to design a motor. Then, how that translates to FreeCAD, what works and what doesn't, what you learn on the way will become very precious knowledge to be written down.
Nishanth
Posts: 4
Joined: Sat Mar 04, 2023 5:31 pm
Contact:

Re: Google Summer of Code 2023 - Call for Ideas

Post by Nishanth »

I'm interested in FreeCAD-BRLCAD integration project.
I have good foundation in math, programming and familiar with CAD as a user. I'm also familiar with C/C++, linux, CLI, Java, Python, git, cmake
But I'm new to open source and have limited experience working on large projects.
I spent a couple of weeks with brlcad source code and able be grasp it will. Also I'm very much interested and willing to learn computational geometry.
And I would like to know how hard is this project, and can a beginner complete it?
User avatar
yorik
Founder
Posts: 13630
Joined: Tue Feb 17, 2009 9:16 pm
Location: Brussels
Contact:

Re: Google Summer of Code 2023 - Call for Ideas

Post by yorik »

@Nishanth yes and no. It is a difficult project because it involves studying and understanding a lot of code and concepts. But let that not stop you. The FreeCAD/BRL-CAD integration is something very dear to both FreeCAD and BRL-CAD developers, and we want very much for that kind of cross-project things to happen. So it could also be thrilling, you would have a lot of people looking at what you do, and also possibly mentoring from both projects, which also could be awesome

Basically: FreeCAD uses mainly one "engine" to produce and handle its geometry: OpenCasCade. But almost all the OpenCasCade (OCCT) functionality in FreeCAD is in a module (the Part module). The Part module is basically responsible to handle geometrical operations (creation and modification of shapes) and create the 3D visualization of those shapes in the FreeCAD 3D view. The base of FreeCAD itself is not tied to any particular geometry engine. It could use others than OCCT.

BRL-CAD, on its side, is a very powerful geometry engine. You can load enormous, complex multi-object models in BRL-CAD, with parts in different formats, etc. and perform very efficient batch operations there. BRL-CAD, however, does not have very powerful UI tools. So imagine how cool it could be to be able to open and manipulate BRL-CAD models in FreeCAD!

This is, as you can imagine, a huge amount of work.There is little chance to complete it in 3 months work. But, you could start working on it. It would be a lot of research and documentation work, mainly so others can work further on this later, like exploring the internals of BRL-CAD and understand (and document) how the document structure works, and how the engine can be used inside another project, understand how FreeCAD uses OCCT and produces coin3D representation, and imagine how all this could fit together. You would probably also test some ideas, write some ideas of how such a project could be structured, and if time permits throw out some preliminary code.

You should be prepared to do a lot of research, document and write about everything you find, and probably do some compiling of both projects and play with linking libraries of one into the other. You probably won't produce a lot of "finished" code in the GSoC time slot, but you will have set very important bases for later. And who knows, there is a lot of interest and you stick to it afterwards ;)

To sum it up, it's much more a research project than a coding project.
User avatar
yorik
Founder
Posts: 13630
Joined: Tue Feb 17, 2009 9:16 pm
Location: Brussels
Contact:

Re: Google Summer of Code 2023 - Call for Ideas

Post by yorik »

To all interested GSoC students: If you are willing to submit a proposal for FreeCAD, please start early, and show us what ideas you have! You can submit a draft proposal on the GSoC website, ask us for reviewing, and keep working on it. So we can work together to make them good!
Nishanth
Posts: 4
Joined: Sat Mar 04, 2023 5:31 pm
Contact:

Re: Google Summer of Code 2023 - Call for Ideas

Post by Nishanth »

Thanks @yorik for the detailed answer, I'm looking forward to make a good proposal and give this project a good start.
User avatar
rossberg
Posts: 3
Joined: Thu Feb 14, 2019 7:02 pm

Re: Google Summer of Code 2023 - Call for Ideas

Post by rossberg »

@Nishanth I recommend to give BRL-CAD's MOOSE library a try. It's the whole BRL-CAD core in one library (.so/.dll) with a C++ wrapper API.

Build and install BRL-CAD first. Then build and install MOOSE. After doing so, the BRL-CAD installation isn't needed any more. It can however be handy to have it.

There is an example in MOOSE, which demonstrates how to build programs with it. For a more complex example, there is the MOOSE port of BRL-CAD's maybe next generation GUI arbalest.
Utkarshkumar
Posts: 4
Joined: Sun Feb 26, 2023 4:36 pm
Contact:

Re: Google Summer of Code 2023 - Call for Ideas

Post by Utkarshkumar »

hlw
@yorik

last time you asked me the things i gonna explain you
please read my document
how can I do this thing
but in case you don't find what you want please contact me anytime.
this is a demo representation of your question for free cad
1st page represents i can do this for the entire page in a much better way.
please go through this
https://colab.research.google.com/drive ... sp=sharing

and i also added the doc file where you can understand what i want to say.
but in case if anything you want to ask please discuss how better can perform for this task.

all the answer should attech 3 documents file please go through it.


in 1st file the information of whole the link is available in free cad i grap it by api scrapping.
2nd file is text one just a demo view of it where all the information of 1st page is available i should grap.
[/b]
i drop my idea here and I also mailed you please go through my document. in last of your mail you asked me two questions.
1. Designing an online HTML output means: we have our documentation in markdown format. How do people read it online. Do we use the wiki, simply? Or do we pass the files through some static site generator?

ans):-According to me I can the following things

Using a wiki is time taking like opening again and again if they want to move from one place to another.wihtout lose of any data.
So basically the thing I can do is that I can 1st store the entire data of documentation by the using of (Machine Learning) Python Program after that the thing I can do is to create a self made API site the basic work of to provide the data in offline mode also without using the internet or by the internet as they want they can just open and search whatever the want all the information available on like a free cad site I can add the the information of the free cad website in that website and just scroll down and just in one click the data should be printed.


Defining what contributors should do while the wiki is in read-only mode means when we migrate the current wiki to a new system, it might take a while. How do we make sure current wiki contributors do not get bored and leave, how could we keep them informed and what do we suggest them to do?
ans) without disturbing of any information we can easily pass the information of one page to another and user can eaily and attractive manner get this information without wasting of extra time.


Define how dynamic contents such as FreeCAD API documentation can be extracted and added automatically to the documentation. FreeCAD has in-code documentation. How could we extract and join that documentation to the general, manually-written doc?

i should add answer with my demo


3rd file is a document file where I just explained the summary.
read and give feedback how can i much improve this one.
Attachments
freecad.csv
(5.2 KiB) Downloaded 37 times
myfile.txt
(29.42 KiB) Downloaded 35 times
freecad.docx
(623.4 KiB) Downloaded 35 times
Utkarshkumar
Posts: 4
Joined: Sun Feb 26, 2023 4:36 pm
Contact:

Re: Google Summer of Code 2023 - Call for Ideas

Post by Utkarshkumar »

this is just a demo view how can i plan and do.
Nishanth
Posts: 4
Joined: Sat Mar 04, 2023 5:31 pm
Contact:

Re: Google Summer of Code 2023 - Call for Ideas

Post by Nishanth »

rossberg wrote: Wed Mar 22, 2023 5:26 pm @Nishanth I recommend to give BRL-CAD's MOOSE library a try. It's the whole BRL-CAD core in one library (.so/.dll) with a C++ wrapper API.

Build and install BRL-CAD first. Then build and install MOOSE. After doing so, the BRL-CAD installation isn't needed any more. It can however be handy to have it.

There is an example in MOOSE, which demonstrates how to build programs with it. For a more complex example, there is the MOOSE port of BRL-CAD's maybe next generation GUI arbalest.
definitely
User avatar
Blacklight
Posts: 41
Joined: Sat Feb 25, 2023 12:10 pm
Location: India
Contact:

Re: Google Summer of Code 2023 - Call for Ideas

Post by Blacklight »

Submitted a draft for the materials DB one. I'll try to do the motor workflow one tomorrow. I was waiting to make a full description, but I guess I'll file a draft early on as suggested.

Also, how do I go about contacting developers here? I found some support from IRC/Discord, but I couldn't find you (Yorik), Uwe or Bernd in Discord. I suppose forum PMs are the way?
Keep calm, and be nice to everyone!
Post Reply