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
gauriimaheshwarii
Posts: 11
Joined: Sun Feb 26, 2023 12:54 pm
Location: New Delhi, India
Contact:

Re: Google Summer of Code 2023 - Call for Ideas

Post by gauriimaheshwarii »

Hello everyone!
I am Gauri Maheshwari, a second-year student pursuing Mechanical and Automation Engineering at Indira Gandhi Delhi Technical University for Women, India.

I am a technical enthusiast and a regular CAD user. I look forward to being an active FreeCAD community member, and a possible future contributor.
For GSoC, I'm particularly interested in Upgrade the documentation system owing to my background and experience in C++ and Python. I am comfortable working in both languages.

A strong open-source community, first-hand user experience, and user feedback are all important for improving the software.
Since I am new to the ecosystem, I ask for guidance in proceeding further toward contributing to the project and the FreeCAD community.

Thank you!
Last edited by gauriimaheshwarii on Tue Feb 28, 2023 2:00 pm, edited 2 times in total.
galou_breizh
Posts: 436
Joined: Wed Sep 15, 2010 9:38 am

Re: Google Summer of Code 2023 - Call for Ideas

Post by galou_breizh »

Hi all,

I'd like to propose an idea for GSoC'23. Please find the description below.

Development of a ROS workbench for FreeCAD

The aim of this project is to develop a ROS workbench for FreeCAD.
The project will be based on a preliminary ROS workbench developed by myself.

Student's tasks

- implement a script that exports a list of elementary objects, such as boxes, spheres, cylinders, meshes to the format of robot description used in ROS, URDF,
- implement a FreeCAD object type to represent a robot,
- implement a script that exports the newly developed robot object type to URDF into a proper ROS package,
- implement a script that imports a robot description in URDF format into FreeCAD,
- implement a tool to combine several URDF files and FreeCAD objects into one URDF file to describe a robot with a gripper for example or a robotic workcell.

Possible extensions of the ROS workbench

- implement a tool that creates the configuration package to use the robot with MoveIt!, similar to MoveIt!'s Setup Assistant,
- implement the features to visualize live ROS topics, such as the robot state, the planning scene, reference frames, LiDAR scans, images, point clouds, ...,
- implement a tool that configures existing libraries for inverse kinematics or directly exports the inverse kinematics as equations or kinematics plugin for MoveIt!.

References

- Phobos, a Blender add-on supporting the URDF format
- ROS add-in for Solidworks™
- Fusion2URDF
- OnShape to Robot
- Draft of a ROS workbench by @fosselius
- The freecad2gazebo workbench

Mentor

Gaël Écorchard from the Czech Technical University in Prague, Czech Republic, Group of Intelligent and Mobile Robotics.

The topic, ROS, is a niche in the FreeCAD community so that the implication of the community will probably be sparse.

There is also the option to submit an idea under the umbrella of OSRF, which may be more appropriate. I'll also contact them.

Please tell me your opinion about it.
Nishanth
Posts: 4
Joined: Sat Mar 04, 2023 5:31 pm
Contact:

Re: Google Summer of Code 2023 - Call for Ideas

Post by Nishanth »

Hi everyone,
I am a mechanical engineering undergrad from India, also a computer enthusiast, so naturally open source CAE become one of my area of interest.

I have some experience using C/C++, Python, git and I'm new to open source, currently going through the documentations and looking at the issues and project ideas.

I rely on open source CAE tools, and very eager to get involved and know my tools better.

Looking forward to start my journey into open source CAE.
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 »

Welcome @gauriimaheshwarii , @Nishanth !

Excellent idea @galou_breizh ! Mind to add it to https://wiki.freecad.org/Google_Summer_of_Code_2023 ?
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 »

Hello FreeCAD friends!

I'm Jyothish Kumar MS, and you can call me Blacklight. I'm 22 years old, and am a university dropout, who is interested in improving open-source engineering software so naturally FreeCAD is the most interesting one for me to contribute towards. I also heard about GSoC from a friend's LinkedIn, and I found that FreeCAD used to participate there so I was really excited to join in.

My background
I was studying Computer Science & Engineering in Cochin University of Science and Technology since 2019, and I had taken a break year once for introspection during Jun'21-Mar'22, and then I dropped out in October'22 due because of family and work conflicts. I did not have any difficulties with the subject, and computer science was my favorite subject too. But often the college could not maintain a healthy pace (probably due to COVID), and I had some personal problems too. But then, after my year of introspection, I was ready to focus harder on my classes, but things didn't go well yet again. In Oct'21, a friend invited me to join his startup, and I was feeling really creative, so I decided to join it. To make it work alongside my classes, I had to maintain a good routine, which I was okay with. But my father never believed in my abilities and would call me a moron when present my ideas for not considering what's possible for us. They would also never respect my need for a silent space to focus, and that eventually led to me fighting with my dad many times, and once I damaged my spine by straining myself too hard. I didn't know exactly what it was (I thought it was either muscle pain/blood pressure), but my whole body was often in pain and I couldn't focus in my classes since last June. My first exams were also postponed to July, so I couldn't score well in the entire semester, even though I'd attended my classes really well. That really lowered my morale. Finally in October, I couldn't handle the pain and went to the doctor, and it was then that I figured out that I had thinned discs, and I was prescribed weighted bedrest for 15 days. Because I had lost a lot of time already, I decided to drop out to focus on my startup. I didn't even rest properly during the prescribed period because my mind was coming up with new ideas which I had to note down, and because of that I took 3 months to fully recover. My teachers really liked me for my aptitude, and they asked me to stay, but because of my health conditions, and the fact that I felt being pushed and pulled around a lot, I had to leave it, even though I'd have loved to continue if I could just freeze time for a while. (My family issues are solved now, and we're at peace)

To top it off, I was sent to a military boarding school when I was 11 where I studied for 7 years. I was a computer nerd and I was interested in game development at that time :lol:

My motivation to work in FreeCAD

So, as I started working on my startup, I realized the need to make CAD models. We are currently working on making delivery drones btw. For free-form modelling, I was familiar with Blender, but I did not know much about mechanical design. My friend told me that he knows CATIA, but I didn't want to support piracy, especially in a business environment. At first, I picked Fusion 360 because I was sold on their generative design workspace, but after a while they made their simulation services paid-cloud only. This was really annoying to me.

And over the course of one year, I got used to linux distros enough to see why operating systems should've actually been open-source. Also, while at college I never liked how they used to teach us about Intel 8085 as opposed to reasoning from first principles. I did not see why a proprietary company had to be used as the primary reference rather than an open-standard like RISC-V at the least. I also saw that MATLAB was more popular in universities unlike Octave or any free university built tool, which I could not justify. If students are taught proprietary software, they will be stuck with them and not be able to easily switch to a free alternative, even though they are not intrinsically worse than the paid ones. The only reason they lag behind is because everyone uses proprietary software and no one wants to contribute to open-source, because not everyone cares about how programs work as opposed to how easy it is to get some good looking results, and also because they don't get paid.

Also, my friends often call me to pirate ANSYS Fluent, CATIA for them, since I'm the hacker kid. Some people don't even know that Fluent is the software and ANSYS is the company. I don't think anyone I know really buys any of these tools even though they use them. The fact that we pirate, even though we don't generally get into trouble makes us feel like second class citizens, and I don't want hard working students to feel like that. After my pestering, my teammate started telling me that he has a CATIA student license, even though I know CATIA doesn't have one in India.

For this reason, I'm interested in contributing to the development of FreeCAD, and I want to show the people around me how it can be as good as proprietary alternatives.

My aptitude and experience

I am mainly interested in physics, particularly with laws of motion and electrodynamics (which technically includes everything) and mathematics. I'm also interested in the theory of computation, and I enjoy simply messing with code. When I'm free I sometimes come up with totally useless algorithms that would solve niche problems that no one would want to solve. However, I've found this hobby of mine to be very useful when it comes to engineering, although I think only design engineers do this sort of stuff, and that's not everyone.

I also have interest in game development, music theory (8-bit included), literature, art, photography, UI/UX design and anything new. I also have a good taste for design, although I'm not yet very experienced at designing, so I may be able to help with the UI and ergonomics later on.

While at school, I had created a music player for my final year project. We did not have access to computers aside from afternoons at the library, so I coded 2000 lines using pen and paper, filling 7 notebooks, and I debugged it by tracing the flow through paper alone, and it had to work on the first try, which it did with minimal tweaks. I only used the Windows API and standard C++17. I was not used to Makefiles and CMakeLists.txt back then, so I haven't worked with them yet.

While I'm good with C++17, I'm just somewhat experienced in Python. Someone stole my 'How to Think Like a Computer Scientist: Learning with Python' when I'd only read ~70% while at school, so I never finished an entire course, and don't consider myself an expert. I still fix my friends' codes when they have problems, but I know that's not enough since I have to refer StackOverflow to get anything meaninful done. I've also dabbled with a bit of Java, C# and PHP here and there, and also my childhood favorite Batch scripts.

I also maintain a knowledgebase for everything I learn, titled Vault of Knowledge here. I'm working on publishing it using ObsidianHtml, and I hope to make it a good source of knowledge for everyone.

My Ideas for FreeCAD / GSoC

So, as of now I've only gone through the source code. I've not even used it yet, since I was on 4 GB RAM until last month and I was not done with distro hopping to settle on a lightweight work OS. I took my notes on FreeCAD source code, which you can see here. I've not yet gone into familiarizing OpenCASCADE and CMake yet, but I will with time. I'm hoping that mentors will guide me through them as needed if I get into GSoC.

So, here are some of my rough ideas:
  • I haven't seen a tutorial on designing motors using FreeCAD. Perhaps this requires a good interaction with KiCAD and Elmer? If so that is one area I'm willing to work on. I don't know how complicated this can be or if it will fit in the GSoC timeframe, but you guys should know about it better.
  • Any code refactoring or cleanup, because I am a sucker for clean code. Although I don't think FreeCAD has any bad code in it's core. I did notice that package/fedora is outside /src, while MacAppBundle, WindowsInstaller and XDGData are inside the src folder. I also saw there's a /3rdParty folder but /zipios++ is outside that. I'm not sure why, but perhaps they have their reasons.
    grd wrote: Thu Feb 09, 2023 11:45 pm I am saying that using Nim for a new WB can make your code as fast as C++ without having the need for C++ and I think that is important.
    I'm also interested in @grd's idea of introducing Nim as an extension.
  • Any sort of documentation improvement, because writing wikis was an old and beloved hobby of mine. There's issue #8558, but apparently there are others who are interested in doing that too, so I won't be choosing that for GSoC.
  • Extend the materials database to include a minimalistic, yet broad catalog of materials, like Aluminium Alloys 2017A (AU4G), 6061, 7075, Carbon Fiber Reinforce Polymer (Epoxy Resin), Carbon Fiber Reinforced Carbon, Glass Fiber Reinforced Polymer, etc. With the properties being the typical density, Young's Modulus X/Z, Yield and Ultimate Tensile Strength and other thermal and electrical properties.

    I see that this is listed Material with the plan to make an open database at Material#Material Database and the list of properties at Material#Material properties.
I came up with these on the fly, and I still have to go through the listed ideas in the wiki to see if I can come up with something more. For now, I just wanted to make an introduction post.

Contact and Availability
I'm on Libera Chat as BlacklightMG. I'm also in the Discord server as BlacklightMG#4866, and I'm also in the Elmer and OpenFOAM servers. I'm on Twitter and have occassionaly mentioned FreeCAD, and the Twitter team was really responsive. But I'm not very technical in my socials, and I mostly post about gameplay and life. As for the forum, I'll try to make it a habit to check in since I'm doing GSoC. I have a bunch of gmail accounts so I don't notice emails that much.

Alongside this, I also have my startup to work on. But I'm only working on it 3 days a week, and the rest is my personal time. So I don't think I'll find it difficult to find adequate time for GSoC.

Here's my GitHub profile: github.com/blacklightpy
Don't worry about the 1700 contributions in the last year, 1662 of them are towards my Vault of Knowledge repo. I'm still a new open-source contributor and haven't worked with any project before aside from submitting one or two markdown edits, and I've otherwise only submitted issues.

Quirks about me
  • I can be lazy, but I'm patient and I'll always strive to finish my tasks. It's usually not that I'm lazy, but I'm overloaded.
  • I like to think slowly and deeply when solving problems as opposed to being fast. I'll often postpone the problem at hand till I finish the other stuff that take up my headspace so that I can think clearer.
  • Unless I'm sleeping or it requires thinking, I usually reply fast. I sometimes keep my Whatsapp phone away, but that shouldn't be an issue since I keep a seperate phone for work. I'm also afraid of being too verbose, so I sometimes take more time to think and condense my thoughts than is required.
  • I'm very friendly.
  • I'm can be emotionally unstable at times and that's one of the reasons I take time off. I've been working on this with meditating, keeping a routine and journalling. Sometimes I get carried away with work and I skip sleep, and that becomes a problem.
I know it's a long post, but I wanted to introduce myself and I didn't find a seperate section for that. Also, I'm here to stay for a long time, so a long intro doesn't seem that bad. And phpBB is pretty compact so it seems very readable :D.
Keep calm, and be nice to everyone!
User avatar
fosselius
Posts: 381
Joined: Sat Apr 23, 2016 10:03 am
Contact:

Re: Google Summer of Code 2023 - Call for Ideas

Post by fosselius »

I can assist on the ROS project, Have been away from the project for a while, but are starting to catch up on both FreeCAD and ROS now :D
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 »

Welcome @Blacklight! There are many interesting ideas there! @uwestoehr is currently working on materials, so it might be interesting to chat with him if you're willing to go in that direction. Developing a motor-based workflow/tutorial seems also very interesting. We could easily bring a KiCAD mentor together, if interesting. Since when we started under the BRL-CAD umbrella (where KiCAD is still now), making cross-project GSoC projects is something we always wanted

To anybody interested in mentoring: Please reach to me so I give you access to the GSoC platform!
User avatar
uwestoehr
Veteran
Posts: 4961
Joined: Sun Jan 27, 2019 3:21 am
Location: Germany
Contact:

Re: Google Summer of Code 2023 - Call for Ideas

Post by uwestoehr »

yorik wrote: Wed Mar 15, 2023 2:35 pm @uwestoehr is currently working on materials
I am sorry, I only fixed the bugs I found. I did this during a sponsored project which is now over. I don't plan to work on Materials anymore since I think it suits FEM so far. Once we support new FEM features like acoustics, we will extend the Materials (e.g. to support the sped of sound as material property). But no major change is planned.
User avatar
uwestoehr
Veteran
Posts: 4961
Joined: Sun Jan 27, 2019 3:21 am
Location: Germany
Contact:

Re: Google Summer of Code 2023 - Call for Ideas

Post by uwestoehr »

A general note: You cannot count on me this summer. Due to personal issues, I will not have much time for FreeCAD I assume. In every case I cannot mentor a GSoC student.
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 »

Hi @yorik, I was away and forgot to take my laptop's charger, so I couldn't check in on the forum. Yes, I'm mostly interested in the development of motors. I still have to gather a good understanding about motors, but I think doing is the best way to go about it. It is something I'd like to see in FreeCAD and I'll also want to maintain it post GSoC.

Apparently @uwestoehr is no longer working on it and is too busy, but if possible I'll take a look at it and try asking him some doubts. FEM is not my area of expertise, but is of interest to me, and I'm also interested in the addition of acoustics, for analyzing blade noise for example. But that probably won't fit in the timeframe.

So motor design workflow and materials database seem like good points, and the choice will have to be made according to what's a good fit for the timeframe and what would benefit the project more right now. I still have to think for more ideas, and gather a good understanding to work on the current ones.
Keep calm, and be nice to everyone!
Post Reply