FreeCAD Arch Development News - November/December 2017

Hi all,

First off, sorry for the delay, I was trying to finish the new Render  workbench (see below) before posting this report, because otherwise  there is not much exciting stuff this month, and it ended up taking more  time than I thought, because I kept experimenting a lot until arriving  to a good solution. And since not much more will be happening this year,  given the coming new year events (a good friend of mine calls this The  Great Intoxication) I'll exceptionally make one report for two months,  if you don't mind. But I'll give you some more news before the January  report.

I'd also like to take this opportunity to thank you all who contributed to my Patreon campaign  (or Librepay) this year, it has triggered some big changes for me,  which took (and are still taking) more time than I thought,  you don't  turn into a part-time programmer overnight, but it is a really cool  process, and, truth be told, during last year's dire economical crisis  in Brazil, this FreeCAD "job" I now have thanks to you guys helped me a  lot to keep the boat afloat. Thanks a million for that.

Basically FreeCAD development has now entered "feature freeze" mode,  in preparation to the upcoming 0.17 release. I can hear the question  rushing from your hearts: When???

There is unfortunately no answer to this yet, as some of you know, a motto we have at FreeCAD, that we really like a lot :) is: "It's done when it's done". This can be interpreted in many ways,  you might think "lazy developers don't want to work hard enough!" but it  is not that. It is very important to all of us to be able to release  when we think it has reached the correct level of quality. As the  project grows too, there are more and more developers involved, and more  and more features weren't touched at all by one of the core developers,  and it takes time to have everybody focus on fixing bugs. In a sense,  FreeCAD  has its own rythm, and we try to make sure everything that  needs to be done is done before releasing.

Also, but this is more my personal opinion, working on an open-source  project is awesomely cool. You don't have a boss telling you how you  must do your job, no schedule, no deadline, no need to do this or that  today, you decide what you want to do, how you want to do it and when.  Total freedom. And I believe one of the main reason why open-source  projects thrive well is this. People like to work on them, they have  cool communities full of entusiast people who stick there for a very  long time. And I think it is important to keep an open-source project a  very cool and awesome place for developers to be. And I'm not sure very  strict projects with lots of schedules and roadmaps are as cool to work  with as FreeCAD :) I'd like to hear it if you have a different opinion, though.

Also in the case of FreeCAD we have a pretty permeable workflow.  Development versions are easy to obtain and install, even side-by-side  with the current "official" release, and are usually very stable. Most  long-time FreeCAD users only use development versions. So the urgency to  release official versions is low.

So, we are now in feature freeze mode, which means we don't add new  features to the code anymore (at least we try to), we concentrate on  testing and fixing bugs. There are still a couple of nasty ones to be  fixed, but in general the process is going well.

Regarding the Arch workbench specifically, I am currently developing an architecture project  with it, and using it as a test bed to test all possible scenarios and  find bugs (and fix them of course). There is unfortunately nothing very  exciting to share here, it's mostly small things, but this is an  important phase.

All in all, I think the Arch workbench is in pretty good shape for  the coming release, we of course still don't have all the features we  want for it to be a full BIM application, but the existing tools grew a  lot in stability, versatility and usability. For some of them like the  structure or panel tools, I believe we're not far from commercial  counterparts.

Also, there are now several tools and addons around Arch, such as  Reinforcement or Flamingo, that, together with Arch, are building a much  bigger and more complete BIM ecosystem in FreeCAD.

There are many things you can do to help to speed up the release process, if you are interested. For example translating FreeCAD, helping with the documentation or more generally, do some work with FreeCAD and help to find bugs. As always, the forum is the best place to go if you want to help.

The Render workbench

The Render workbench is a new addon workbench I've developed last month. It is meant to replace the built-in Raytracing workbench  of FreeCAD. The main reason is that the Raytracing workbench wasn't  really made to be extended with other rendering engines, but these  engines get obsolete quickly and new ones pop up all the time, so I  thought it was worth starting a new one from scratch.

The Render workbench is coded in Python, because since the rendering  itself is performed by another application anyway, there is no critical  speed issue here, so the speed of C++ code is not really necessary, and  it makes the workbench much easier to extend by other people. I also  took extra care of making it simple to understand and extend, you  basically only need to add one new file for each new renderer, and write  3 functions inside: One that writes the position of the camera in the  file format of the renderer, one that writes the geometry of a given  object, and one that is called when the "Render" button is pressed.

So far the two original engines of the Raytracing workbench are supported (Pov-Ray and Luxender), plus a new one, Appleseed. Other such as Blender's Eevee and OpenCasCade's CadRays are on my todo list.

The Render workbench works exactly like Raytracing: You start by  creating a Render project, then add your objects to it. You can tweak  some things like color, transparency, etc (the Render workbench also  supports FreeCAD materials, which turns it the third workbench with  material support, after FEM and Arch), and finally press the Render  button to create the rendered image. And the Render workbench uses the  same templates as Raytracing, in the good tradition installed with  TechDraw and Drawing.

This is still pretty new, but in the coming days I'll try to produce some good-looking images to post on the forum.

That's it for today, thanks once again to everybody who helps me on Patreon or Librepay,  it's really thrilling to see what this can produce, this year has been  very rich in new features, I can't wait to see what we'll do next year!



By becoming a patron, you'll instantly unlock access to 2 exclusive posts
By becoming a patron, you'll instantly unlock access to 2 exclusive posts