 Hi there, I'm Jorick. This is Brad's and we should have been doing this with Kurt, but he's talking in the transit So it will be just the two of us today We'll give the short presentation of Frickhead. It's okay if I do the introduction, okay, and then I will just give a short introduction of the project for who doesn't know it and Then we'll show a little bit of example of what we do around Frickhead and other stuff So for who doesn't know Frickhead yet, it's a 3d modeling application Basically we used to say it's 3d application made to build objects that will be built in the real world to make the difference with like applications that are used to make animation or movies or stuff like that which is not the focus of Frickhead because it has all those precision tools to make really precise Things such as this thing. It's really made to make such objects From people use it to make small electronic components up to buildings I'm an architect myself. I use it to make to draw buildings Brad is in CNC. He uses more for CNC and there's a wide range of uses around Frickhead and basically it's Most of Frickhead users use it to do 3d printing. That's it. I believe it's main use today It began in 2002 with two developers and now there are like I would say 20 or 30 people committing every week or so. So it's really growing and it's going quite well actually And an interesting part of it. That's what we want to showcase today Is that we have it's not really a project with I would say more than half of the developers are not from the programming background I myself am an architect. Brad is also not a formal programmer and most of the Developers didn't learn Programming formally. They just came to the project and since it's quite easy to to grasp some Python from it because it's you have the Python console all the time everything you do in Frickhead reflects in the Python console Which is around here every time you push a button You get actually a Python command printed and executed there. So it's quite didactic You use Frickhead and you learn some Python on the way and most of the developers entered the Projects that way actually Many of them. There are some professional programmers as well So this is what I'm going to talk about You want to start? So I will show you a little bit of what I do with Frickhead. I'm an architect by trade that's my day job and Actually, we have this architecture studio myself more four or five people Which is almost totally open source. It has no physical location All the projects we do are mostly open source. We just Keep the the private data of the clients encrypted so all the project goes on the Github repo and Just to the private data is encrypted. So public cannot read it And this is a kind of example of what we do in we use a lot of Frickhead in it But this is a property platform from Autodesk or have it Just to show you that Whatever you do in Frickhead is quite now really interchangable with property applications some of our team use it because they want it But the idea is not to be zealot and And say we only use in persons some clients want the property formats as an output So you have to deliver the property formats, but the idea is to say anything works like You can plug various components in the tool chain and it should work seamlessly And that's what we're trying to achieve some are working with Frickhead some are working with this and it should just go around That's the our office. It's on Github and All the projects are there That's the latest one we've done. We're doing and It's fully developed The open source way So this these are the projects files and it looks these are where our Team is located This is how we use a riot for discussion and all the technical discussions happen Online as well and it's this looks like common for open source developers That's how an open source project works, but I can tell you that for architecture is Totally uncommon people don't work that way and we're really trying to Bring the open source way to an architecture office and free cat is really at the center center of it Everything we learned from developing free cat like reflects in that in that office That's another project. We've been doing That have last year That's a wiki house base building we've built in Brazil and it's basically To showcase how things mix around free cat like basically it's a house built by people Even people without knowledge of building And it's all made of pieces of wood that are cut by a CNC machine And that they're assembled their numbers printed on the on the pieces and you have A manual that shows you piece four goes into piece two and you mount this thing like that without any nail without any glue without any Any other thing just the strength of the of the the junctions And it's all open source. We took it from its original project. We modified it and the result is also open source That's it for my part So I'm gonna talk primarily about the path work bench, which is the cam Functionality and this is a really great example of what York was talking about with kind of a cross-discipline participation on the project this started out in 2014 and I came at the CNC cam Thing as a hobbyist and was just one of a lot of people that were frustrated that there was no good cam application in the open source and particularly the Linux world and so what we did was we were already users of free CAD but Wanted the cam part as we we partnered with York first and I got the the core design for the the C++ part in In free CAD that handles storage of the actual toolpath data and the visualization But none of the user-facing functionality none of the Job control and tool set up and things like that and then that part was all written by by me in part and then more of the Community members coming on little by little and at first it was really really bad And I wind to Yorick about not knowing what I was doing and he said don't worry about it Just just just do it and somebody will come along and fix it later and and I honestly that's what happened is is Better programmers than me came on refactored code and the thing started to gather users and get some momentum behind it So this is a the typical workflow. We're designing a you know like a bench and you're starting out with a model and then within free CAD you have to take the components and Reorient them for cutting on a machine So you have to lay them out into a into a 2d arrangement like in the upper right corner and then generate the toolpath That's going to move a cutter around those shapes Lifting it to clear the the spaces in between the bottom left shows that operating on an actual CNC router and then the final product down below So that's that's a typical 2d or 2.5d process the Where we're now starting to move into is a little bit more sophisticated toolpaths like this is adaptive clearing So when you're you're trying to mill away metal from a shape You need to keep the cutter at the same level of engagement with the material the entire time to avoid it speeding up and slowing down and And breaking and so forth and so you're seeing a much more sophisticated toolpath in the upper left That was to mill an aluminum block that's used as a brand on a wooden cover This is another area where we're moving into this is a fourth axis where you've got a shape that needs to be milled on multiple sides And so we're rotating it. I'm cutting a piece of foam In the upper right and then so the the toolpath has to recalculate for each position as we rotate the part around this is Where we're now calculating surfaces and doing more more smoothing passes or in the case of the one on the left where we want to do a Regular operation, but we want to do it on multiple faces of a part So you need to reorient the part on a fourth axis or a fifth axis Well the toolpaths that you're seeing here the work that was done is by one of the newer developers that has joined and he's a Spanish teacher in Oklahoma and he does this as a hobby and It's surprising how much he's been able to move it forward You know with a little bit of coaching and then just you know guts and determination so this is one other area one of our other developers who's a real programmer a serious programmer has He has wanted to go one step farther and integrate direct control of the CNC machine within free CAD So instead of the traditional you set up a toolpath and then you post-process it and you get a G-code file and then you take that over to the CNC machine and load the g-code file and run it what he can do with this is from free CAD he can connect directly to a CNC machine that's running machine kit and Select the path Job that he wants to run and the numbers that you're seeing in the top left of the 3d window That's the DRO the position coming directly from the machine. So the the indicator in the 3d window and the kind on the the left side is the Cutter position within that window and when he runs the job You'll actually see the cutter move and follow the path that's generated So yeah, this is you know now a developer who came in initially for one little feature has started to you know Make bigger and bigger contributions and now his contributions are getting outside of the path Cam workbench and getting into other aspects of free CAD as well And that's really a very typical process The thing about cam is that the community is running a wide variety of machines And each of those machines needs unique g-code generated for it So one of the first places that we're seeing developers come into the project is They're writing a custom post processor for the machine that they've got or for the machine that they sell if it's a Company and and that's a really easy contribution to make but then invariably It's like does everything except that one thing that we need and then it's a feature and Then eventually they start working on the core stuff So it's it's been a lot of fun and it's It continues to accelerate and I think we got some fun stuff coming up in the future That's what I've got. I'm gonna do Q&A So these are oh, these are a few of the post processors that we have right now from Linux cnc smoothie Centroid dynapath so quite a few of the most common machines that you're gonna see in Especially in hacker spaces or small companies we We can generate g-code for right now There is an add-on workbench that could be installed through the add-on Manager that's called sheet metal and you can both design Four sheet metal and take parts that were designed that way and unfold them into a 2d representation So yes, it is there. I won't say it works for every model, but it's it's there Yeah, I'm sorry us He asked well what libraries were using for toolpath generation Right now the most of the 2d and 2.5d operations use a module within FreeCAD called path area That's basically an implementation of the clipper lib the by Angus Johnson. It's been around forever We also use open camlib and open Veroni a little bit that are for doing The Veroni thing is not merged right now that's in a one a branch on my repo, but we can do like centerline engraving of fonts and The open camlib we use for the like the surfacing that you saw in there Yeah, so he asking What are the the best arguments to switch to FreeCAD as a beam platform? I would say basically the freedom that all other platforms commercial platform would try to lock you in In a universe where you just use their platform and their file formats and you will have to use their other solutions of their Family together and by using a free software basically you free yourself from that I would say technically you basically can do in FreeCAD the same as you can do with commercial platform almost like every Free software you have to search a little bit by yourself for some solution that are not so obvious But basically technically it's there you can do it and I would say the The best argument is that is the freedom and the hack ability because FreeCAD is totally hackable You do it you do what you want with it. You reprogram it you write macro You can it's might be just five lines of code So it doesn't need to be like entering the programming world and you already make it do what you want And it's extremely easy on FreeCAD and it's really hard on other platform even with tools like Dynamo etc which are not easy and So it's basically another word another way to see things. Yes. Mm-hmm. Yeah, so the question is What about using gits with FreeCAD and with architectural work workflow and Are there any plans to integrate gits better with FreeCAD? I say yes, we use gits a lot and It works and it has those limitations that you say We have already a couple of tools in FreeCAD to work with gits directly, but Let's say the advantage of it is basically Keeping you free to manage it outside of FreeCAD and it's actually a good thing That it's not tied in FreeCAD and you just manage your files the way you want Without the way FreeCAD developers would think you would need to So yeah, you have a plug-in in the add-ons where you can have a git panel in FreeCAD and you can commit from there But even me I wrote it and I don't use it because it's more convenient to do your file management yourself outside of it and on the IFC side IFC is a file format specifically for for Construction models Yes, we have already begin to have a couple of diff tools and tools that allow you to see a difference Between between one version and another version of the file. There is one in the beam work bench in FreeCAD There is one being developed for for Blender as well Blender begin to have a good IFC Interface and so you begin to have in the world open source world several Things that are better in that in that regard And so yeah, I believe pretty soon Will be able to use IFC files The right way. Let's say the open source way with all the features Well the assembly workbench The question has to do with the need for detecting if I Correct me if I paraphrase wrong detecting collisions or interferences between parts within assemblies Can you explain a little bit more how you see the overlap to the cam? With a part. Okay, so how does a tool interfere with a part for the the 2.5d that the easier Kinds of toolpaths that we've generated prior It's very simple offsetting. So there's no detection of whether or not the part is colliding with the model It's simply offsetting a rate the radius of a tool away from the the lines in or out The the open cam lib the for the surfacing part What it does is it takes the actual shape of a tool and pushes it against the shape of the model until There's an overlap between them and that's the control point for that step in the toolpath so I don't see a Direct way to generalize that from cam into into assemblies Beyond that the assembly part of free cat is is under heavy development right now in fact It's more a combination of add-on work benches And I'm not qualified to say but yeah, that's about where that's at So the question is about Alternative discussion forum for development of free cad is that correct? So right now everything is done through a php bb forum Which has an enormous amount of activity to the point that it's become Almost unwieldy. It's it's difficult or impossible to keep up The the development is broken down into channels So there's a dedicated path cam channel where most of the discussion about the cam stuff happens And the same thing for arch and the other work benches But a lot of the functionality or the development needs span Multiple work benches. So I would say yeah, it's it's talked about but I don't think we have a good answer for what What a replacement would look like or how to migrate to it if you've got ideas about how How we can improve that or specific thing specific problems to address, you know so the question is about energy efficiency modeling in in free cad Basically, yeah, you can do it basically what works at the moment is producing IFC models from free cad and exporting to a Software that accepts IFC format such as open studio and then they're converted into an energy model the problem is that For energy analysis software you need a very very specific Simplified model which is basically each room like this one is a box and each phase of the box has properties of how it lets Heat go to go through And it's a very simple model very different than what you use to Make the building where you really want to model the walls and everything So at the moment, it's a bit tricky and We cannot directly from free cat outputs a model that's ready for energy analysis But that's something I would like to have To make and we must think a little bit better how to do that How to let's say model the Traditional way with walls that have thickness and everything and from that extracts and Analyze this model and it's doable We will have a couple of ideas, but not no real plan Practical plan on how to do that yet, but yeah, that's definitely on on the on the list So the question is what programming language does free cad use Basically that the core is all programmed in C++ and all the functionality on top of it is mostly Python basically the the C++ and Python interface are very similar So we used to say basically you can work in free cad either in Python or C++ and it's more a matter of your own choice than a matter than a technical matter and Because you can basically do the same in both languages You can program a workbench fully in Python fully in C++ or a mix of both it depends mostly on on your preferences and most Libraries that we use inside the project have both C++ and Python interface So for example the Qt for the the interface you can access it from both languages And the same goes for every lib library that we use inside free cat so it's really really Convenience to use any of those two languages and basically the data to that are used in in free cat So the question is so what? Geometry formats are the most common to commonly used in free cat I would say step is the most common one Step is a solid base format step format has like the solids are defined by their Faces and those faces can be nerves that can be like defined by geometrical curves So basically you can just represent about anything with that and and it's a very very Solid file format that's there since ever and all the engineering work words still uses uses it So I would say that is the best formats to work with in in free cat STL is used a lot for 3d printing, but STL Inside an STL file. You don't only have points and triangles so your curves will get faceted turned into small Facets and so you can output things easily from free cat to STL, but it's really hard to get back an STL into free cat and You won't have the curves anymore So that's a good output format, and it's not a good input format step is good for input and output So it's basically what most people use Freak ad can import and Freak ad can import and export just about any solid model format B-Rap I just yeah DXF