-
WIP Wednesday 6 March 2024
This week in FreeCAD development:
- bgbsww, CalligaroV, and chennes made further progress towards mitigating the toponaming issue.
- WandererFan fixes several bugs in TechDraw.
- HowThatWorks contributed a set of ISO 7200/ISO 5457 templates for TechDraw, he also removed the non-conformant ISO7200_Pep series and the ISO7200TD series of templates.
- pavltom reimplemented Leader Line parent linking in TechDraw, this allows to transfer the Leader Line to any other Part View present on the page, while keeping all its children, without the need to re-create them.
- chennes updated the Addon Manager to bring back something akin to the original Addon Manager display, with the side-by-side display of the list and details views. He also fixed several build and i18n issues.
- FEA-eng implemented 2D mechanical analysis methods using CalculiX: plane stress, plane strain, and axisymmetric. He also implemented isotropic and kinematic hardening as the next step towards support for advanced material models offered by CalculiX. Apart from that, he fixed Elmer FEM 2D electromagnetic examples and remove the need to include geometrical nonlinearity when nonlinear material is used in CalculiX.
- marioalexis84 contributed a few fixes to FEM.
- 3x380V updated the Python wrapper code with Qt6 migration in mind, he also introduced the use of std::chrono for time manipulation.
- wwmayer made various fixes and small enhancements, he also did some refactoring to reduce code duplication.
- Roy-043 contributed small technical fixes and improvements to Draft and Sketcher.
- davidgilkaufman and jffmichi fixed a few issues in Path.
- djmdjm added G43 tool height compensation to centroid post-processing in Path, also fixed adaptive glitch by removing adjacent coincident and nearly-coincident points.
- Rexbas implemented an opt-out option to use InOutCubic easing function in navigation animations. He also fixed setting rotation center when entering dragging in TinkerCAD style.
- LemonBoy patched the UI code to make the dockbars show the same set of buttons with and without the overlay mode enabled.
- FlachyJoe introduced object freezing, so that users could toggle parametric behaviour of document objects.
- AjinkyaDahale improved the Join Curves command in Sketcher by making a C1 continuity at joining.
- bdieterm updated the setEulerAngles API to update rotation axis vector and rotation angle when setting a Rotation object.
- maxwxyz made small improvements in Sketcher and around.
- jcoalson fixed a bug in Part.
- mosfet80 made minor fixes in the build system.
PR stats: In the week from Wednesday, 28 February to Wednesday, 6 March there were 58 pull requests merged, with a total codebase change of +4,975 / ‑1,227 (not counting translation updates). We had an average merged PR size of +86 / ‑21. 20 new pull requests were opened.
Issue stats: we closed 30 issues, and 63 new issues were opened. Overall, 1,311 issues are currently open.
-
Forged in FreeCAD: Thor, An Opensource Robotic Arm
We imagine most visitors to this blog will already know that amazing things can be achieved or designed using opensource tools like FreeCAD. The Thor opensource robotic arm is a great example of a complex opensource project built using a totally opensource tool chain.
It’s a primarily 3D printed 6 degrees of freedom robotic arm which looks, and performs much like it’s industrial counterparts. Once printed and assembled the 625mm tall arm is able to handle around 750 grams which means it’s pretty capable and could well be tasked with useful work.
Of course, we feature it here as it’s been modelled in FreeCAD, if nothing else it’s worth downloading the FreeCAD files as an example of of excellent quality computer aided design and it’s fun to look around the parts and assembly. Aside from FreeCAD the Thor project has leveraged KiCad for the PCB components and the opensource G‑code interpreter and motor driving platform GRBL. Once assembled there is an opensource piece of software “Asgard” which acts as a controller interface for the arm. In other words, it’s opensource all the way!
If you plan to make a Thor, there is around 200 hours of 3D printing and then a stack of assembly work. All the components, stepper motors, driver boards are all off the shelf items so although a complex design, it’s totally doable. So far there have been in excess of 30 Thor arms built and a variety of them are shown on the project website. Whilst it might look a little complex for a beginners project for those new to hardware builds, it is very well documented. There is a burgeoning forum where you can check out other peoples builds and ask questions.
-
The annual grant program is live
The FPA is launching an annual grant program following last year’s research. The goal is to foster rapid development of FreeCAD. To do that, the FPA will use the community’s donations to pay developers and non-programming contributors. We reserved a fund of 50,000 EUR for this in 2024. We aso encourage work on items from the general roadmap, but are also interested in grant applications exploring other possibilities.
The program has some similarities to Google Summer of Code, but it’s targeted at contributors who are more experienced and don’t need much mentoring (if any at all). We also recognize that projects will vary in complexity. Some projects will take two months to complete, some — half a year or more. So there will be no universal ‘pencils down’ deadline. We will, however, batch the reviewing of grant applications.
If you are interested in hacking on FreeCAD or its ecosystem projects such as OCCT and Coin3D, please submit your application by March 29, 2024. You can find more information about the grant program here. For the full guide on the program and participation please refer to the rulebook.
The FPA will continue accepting and encouraging individual out-of-program grant applications throughout the year.
-
Good bye GSoC 2023, hello GSoC 2024
FreeCAD is a already long-term participant to the Google Summer of Code (GSoC) program, which is Google’s program to fund students to work on Free and Open-Source Software (FOSS) projects. Each year, students submit proposals to work on their favorite FOSS project during the school holidays, and Google awards them a grant.
FreeCAD has been participating since 2016, together with some other FOSS CAD projects like OpenSCAD, BRL-CAD or KiCAD under a same umbrella. Last year, we decided we’re old enough to try, and participated on our own. It was a great experience, we got no less than four awarded students working on FreeCAD. All of them produced good results, and got to know and interact with the FreeCAD family.
The aim of GSoC is not only to get people to work on FOSS projects, but also to give students a chance to dive in to a FOSS project and experience first-hand the dynamics of open-source development (which I think are totally awesome, and definitely something any computer science student should know about). Finally, it also tries to create long-lasting bounds between students and communities they work with, so they stick to the project after GSoC finishes.
GSoC 2023
This happened last year:
- hlorus worked (and is still working!) on measurements tools in FreeCAD. FreeCAD has a very diverse set of different measurement tools, none totally complete, none totally finished. Hlorus, who already worked on other FOSS projects like Blender, started working on a unified system, that hopefully will provide a good FreeCAD-wide measurement solution. Check the project details on GSoC 2023: Unified Measurement Facility — FreeCAD Forum
- Amulya worked and is also still working on a modern replacement for the FreeCAD library. The FreeCAD library has become this huge, unmaintainable, unusable repository of FreeCAD models, pieces and parts provided by FreeCAD users. We needed a replacement which, while still relying on Git and content provided by users, allows a much easier management both by administrators and users, and has an easier integration in FreeCAD. Project details are on [GSoC 2023] UI tool for fetching online content — FreeCAD Forum
- Gauri worked on a new documentation system for FreeCAD. While the current documentation hosted on the FreeCAD wiki served and still serves us well so far, a series of growing problems made us think we need a better, more flexible and safer solution where the contents are dissociated from the platform. Gauri set up a markdown-based docusaurus system, and some FreeCAD community members have now picked up her work and are carrying it further. Check the details at [GSoC2023] Upgrade the documentation system — FreeCAD Forum
- Tanasu worked on on-machine inspection tools that allow a CNC machine equipped with a probe tool to “poke” a piece of material to determine its size and shape. Find more details about it on [GSoC 2023] On-machine Inspection — FreeCAD Forum
Everything that happens with GSoC in FreeCAD is in its own section of the FreeCAD forum. Be sure to check what’s happening there!
GSoC 2024
This year again, FreeCAD has been accepted to the GSoC program. The store is now open, and students can start looking and asking questions and building their proposals. Are you interested in participating as a student? Be sure to check our GSoC 2024 page page with proposal ideas and everything there is to know about the program. Also look at the GSoC timeline to have an idea of where you would be going.
See you there?
-
WIP Wednesday 28 February 2024
This week in FreeCAD development:
- bgbsww, CalligaroV, and chennes made a lot more progress towards mitigating the toponaming issue.
- chennes contributed more changes to the addon manager: fixes and support for sorting addons by several criteria (alphabetical, last update time, creation date, GitHub stars), as well as support for custom scores for addons.
- pavltom added the Insert Repetition Count command to TechDraw and reimplemented Rich Annotation parent linking.
- wwmayer improved the materials editor to use integers for shininess and transparency in a certain value range, submitted a few fixes to Sketcher.
- edwilliams16 improved the calculation of the ‘b’ parameter of the hyperbolic arc in Sketcher.
- Roy-043 improved some wording in Sketcher for better consistency.
- PaddleStroke made it possible to sort items in the project tree by dragging and dropping them. He also changed the behavior of line DSH length/width mode so that it behaves like the rectangle length/width DSH in Sketcher.
- LemonBoy made datum points highlightable/selectable in the viewport.
- NomAnor added an optional visibility toggle to the project tree with the “classic” eye icon. He also refactored the task panel code for PartDesign’s patterns.
- FlachyJoe improved Helix in PartDesign to use the wires of the computed face instead of the selected ones. He also made suppressed objects distinguishable in the project tree.
- adrianinsaval added a new template to the Start page to easily create a new assembly.
- FEA-eng added a new property, BeamReducedIntegration, to the CalculiX solver in FEM. He also made several minor improvements in the workbench.
- marioalexis84 submitted more fixes to the FEM workbench, including mesh generation for check type analysis in CalculiX.
- Rexbas fixed a regression in the Blender, CAD, and Revit navigation styles.
- mosfet80 removed a deprecated function in core and two workbenches.
- 3x380V fixed a few bugs.
PR stats: In the week from Wednesday, 21 February to Wednesday, 28 Feb there were 58 pull requests merged, with a total codebase change of +9,585 / ‑4,489 (not counting translation updates). We had an average merged PR size of +165 / ‑77. 22 new pull requests were opened.
Issue stats: we closed 42 issues, and 48 new issues were opened. Overall, 1,266 issues are currently open.
-
New grants: electromagnetic system simulations and bug triage
The FreeCAD Project Association issued two more grants.
Mario Passaglia is now working on bugfixing and electromagnetic system simulations using CalculiX in the FEM workbench. Expected new features will provide the resolution of:
- Electrostatics problems through an analogy with the heat equation to derive the electrostatic potential and field, employing Neumann and Dirichlet boundary conditions.
- Magnetostatics problems.
- Electromagnetic problems involving the generation of electromagnetic fields due to time-dependent currents, in conjunction with the analysis of heat transfer resulting from induced currents in conductors.
Mario’s project is expected to last 7 months. He has been awarded a grant of $4,000.
Max Wilfinger is working on bug triage: verifying and prioritizing bug reports, assigning contributors to tasks etc. This is a different kind of arrangement. His contract is for 1 year, with monthly payouts of $500.
-
WIP Wednesday 21 February 2024
This week in FreeCAD development:
- bgbsww, CalligaroV, and chennes made further progress towards mitigating the toponaming issue.
- pieterhijma contributed the first code towards a new custom data elements (custom properties) system, see here for technical details.
- maxwxyz adjusted the default material appearance to better display the objects shape (surfaces and contours) with specular highlights and a low ambient color. He also added the recently merged commands for translating and scaling geometries to the context menu in Sketcher.
- czinehuba updated icons for the command that toggles contruction lines mode in Sketcher.
- Rexbas fixed disappearing element handles in Sketcher.
- Roy-043 made several improvements in Draft.
- yorikvanhavre fixed an old suboptimal design solution related to IFC.
- WandererFan fixed a few issues in TechDraw.
- marioalexis84 fixed several bugs in FEM.
- FEA-eng added new matrix solver types (PaStiX and Pardiso) to FEM.
- mosfet80 did some refactoring in the UI code
- 3x380V cleaned up PythonWrapper (more likely to follow).
- Andrei-Pozolotin fixed a bug in the expression engine.
- LemonBoy fixed a bug that prevented FreeCAD from preserving objects order when moving them in the project tree.
PR stats: In the week from Wednesday, 14 February to Wednesday, 21 Feb there were 57 pull requests merged, with a total codebase change of +24,587 / ‑4,685 (not counting translation updates). We had an average merged PR size of +431 / ‑82. 28 new pull requests were opened.
Issue stats: we closed 34 issues, and 59 new issues were opened. Overall, 1,247 issues are currently open.
-
FOSDEM and FreeCAD 2024
FOSDEM, the finest opensource conference in the world recently took place and, aside from cheekily saving the toilet system, FreeCAD had a presence in numerous ways.
We had a shared stand over in the K building right by the entrance which was excellent in terms of footfall and people coming to chat and say hello. We shared our stand with Ondsel, the excellent opensource company building on FreeCAD commercially, and our wider open source family members like KiCad, and Open Toolchain Foundation. We also shared the stand with FreeCAD sponsors and power users the Libre Space Foundation.
We were inundated with visitors with most people having used or being regular users of FreeCAD. A popular conversation was around people having historically tried FreeCAD and perhaps having some challenges, so it was great to discuss with people how far FreeCAD has developed recently and encourage people to take another look. Other common topics at the stand were around discussing the upcoming version 1.0 and beyond as well as some general chatting around how to increase the uptake of FreeCAD users.
Libre Space were excellent partners to have on the stand. You could often hear one of the Libre Space team holding their Qubik Pocketcube (A 50mm cubed opensource satellite the design that has flown successfully on low earth orbit) and saying “This is an excellent example of what you can achieve with FreeCAD and KiCad combined”. It was a fantastic talking point that showed off all our projects perfectly.
It was great to meet other members of other teams at the stand also. The crew from Blender were attending FOSDEM and stopped by for numerous chats and it was also great to see Yorik and Inkscape core developer Martin chatting by the stand.
As well as the stand there was a “State of the Union” address talk scheduled for FreeCAD in the open hardware room on the sunday. Yorik shared the stage with Dr Aik Siong Koh with Yorik presenting an update on current progress in FreeCAD, the upcoming version 1.0, the solving of toponaming problems and more. Yorik then handed over to Dr Koh who presented a little on his work creating an assembly solver for FreeCAD which will coalesce current assembly approaches with a new workbench to be included upstream. You can find the video recording and the slides from this talk here.
-
WIP Wednesday 14 February 2024
This week in FreeCAD development:
- bgbsww, CalligaroV, and chennes made more progress with mitigating the toponaming issue.
- The latest work by paddle on integrated assembly workbench has been merged: linking and grounding parts, functional joints (Fixed, Revolute, Cylindrical, Slider, Ball, Distance), dragging support for Slider and Revolute joints.
- paddle patched the parallel constraint code to ignore points and non-line geometries. He also added Translate tool that also works as a replacement for Rectangular Array / Move / Copy / Clone.
- AjinkyaDahale implemented general tangency with B‑splines in Sketcher.
- Rexbas contributed a patch fixing rotation for some navigation styles in Sketcher.
- maxwxyz further improved contextual right-click menu in Sketcher: preselection and external geometry are now taken into consideration, Fillet and Trim commands have been removed (they can’t work with a selection), Cut/Copy/Paste commands have been added.
- FlachyJoe added a “Passthrough” boolean property in PartDesign so that it would be possible to disable a feature without removing it. He also made it possible to use equal radii in Part and PartDesign cones and implemented 1D intersection for attachments.
- LemonBoy added an option to dim the navigation cube when it’s not in the focus. He also fixed the extrusion behavior when the height is zero.
- Zolko-123 improved the LCS representation in the 3D window to make it easier to select the point/vertex on which the LCS is attached.
- marioalexis84 made further improvements in the FEM workbench: added support for cyclic symmetry and fixed several issues.
- chennes and rostskadat made various improvements in the Addon Manager code.
- Roy-043 made several fixes and small improvements in Draft and Arch, he also fixed the path for off-line documentation.
- mark-dev added subvolume property for roofs based on a solid shape in Arch.
- pavltom implemented adding “Owner” property to all Symbols in TechDraw.
- kadet1090 made axis label color configurable for better theming capabilities.
- wwmayer fixed 3MF exporting with clones, contributed to the Python 3.12 port, improved the port to OpenCascade 7.8.0, and contributed more fixes.
PR stats: In the week from Wednesday, 7 February to Wednesday, 14 Feb there were 66 pull requests merged, with a total codebase change of +15,543 / ‑3,626 (not counting translation updates). We had an average merged PR size of +235 / ‑55. 36 new pull requests were opened.
Issue stats: we closed 52 issues, and 47 new issues were opened. Overall, 1,216 issues are currently open.
-
The FreeCAD day 2024
This year again, the FPA organized a FreeCAD day and a hackathon (and much more!) together with FOSDEM, in Brussels. We had an incredible, epic week of events (which you’ll know all about later on this blog). I’ll describe here briefly what happened during the hackathon and the FreeCAD day.
The hackathon
The hackathon took place during 3 days at the Brussels hackerspace which traditionally offers the space to projects during the week before FOSDEM (and also organizes a kick-ass party during FOSDEM, which many FreeCADers less old and asocial than me attended 😉 ).
Visiting the Brussels hackerspace is in itself a near-video-game experience, involving finding your way in a derelict building with long, similar corridors everywhere, codes on doors and dangerous missions, like helping the hackerspace people to carry dozens of crates of Club Mate through pitch-black basement mazes, failing lifts, and rooms protected by smoke machines. Luckily no zombie horde came.
After a cold start (literally, as we had a hard time kick-starting the wood stove) the first day, more and more people began to arrive, many coming there directly from their train/plane. Soon we reached our full capacity (about 20 people). The hackathon is a wonderful time to look at what everybody else is doing, finally stopping to discuss that particular idea with that specific person, chat with people you only knew online, launch wild ideas and immediately find interested people to work on it with you.
Some FreeCAD heroes like @chennes, @adrianinsaval or @paddle even managed to actually code and get an impressive amount of work done 😉
All in all, we had a lot of fun and, above all, there was there a team who shares a same passion for FreeCAD making it happen together. For me, this is also a kind of guarantee that what happens online, which can sometimes be unclear or veiled, is true and alive. We all share a similar vision over the project, we all want it to become better, more powerful, more universal.
The FreeCAD day
The FreeCAD day is a day open to everyone, where people can come, present an idea or a project they’re working on, discuss ideas or simply watch what’s being presented. This year, we shared the space with KiCAD who also maintained a room on their own. We also had a common space for people from both projects to meet and interact (many people are in fact members of both communities).
Around 30 people attended. The day unrolled smooth and nicely following the unconference idea: You want to talk about something? You write it on a post-it note, and place it somewhere on the schedule. Notes then get rearranged as the day unfolds.
Some of these took 5 minutes, other could last as long as 2 hours, like the complaints session, which was certainly the epic moment of the day. Kliment from KiCAD organized it masterfully like last year (say your complaint in one single sentence, no comments or discussions allowed), and we gained a wealth of good ideas, some easy to implement, some complex, some new, some well-known, but this was in any case a tremendously interesting and useful connection moment with FreeCAD users (sometimes ourselves, as many developers put their user hats and also started “complaining” 😉 ). All in all, I felt we were all on the same page there: FreeCAD is awesome, but there is no reason why it can’t become more awesome!
Several other (often well-known) FreeCAD community members presented the projects they’re working on, and that also is an incredible opportunity to see some of the interesting things FreeCAD is used for.
Thanks to all of you who came and participated. This day was an incredible and unique convergence around FreeCAD, and I believe each of us came out of it full of ideas and renewed enthusiasm.
See you next year?