Vancouver Hackathon Wrap-up

As I write this we are just wrap­ping up the FreeCAD Hackathon 2023 in Van­cou­ver, BC. The cof­fee is gone, the lap­top bat­ter­ies are drained, and every­one present (phys­i­cal­ly and vir­tu­al­ly) is wind­ing up their week­end projects. 

The week­end fea­tured a vari­ety of dif­fer­ent activ­i­ties, rang­ing from pre­sen­ta­tions from Dr. Aik-Siong Koh about his recent work on a new LGPL’ed 3D con­straints solver for assem­blies and from Ajinkya Dahale on his work towards a cus­tom prop­er­ties sys­tem, to audio con­fer­ences via the Dis­cord chan­nel with FreeCAD users and devel­op­ers from across the world, to just a bunch of devs sit­ting around hack­ing on FreeCAD and occa­sion­al­ly ask­ing each oth­er for help or input.

Major Topics

Ver­sion 1.0 Release Roadmap. The first order of busi­ness was to dis­cuss the Roadmap to v1.0. The gen­er­al con­sen­sus was that there are four main focus areas that must be addressed before a 1.0 release:

  1. Mit­i­gat­ing the topo­log­i­cal nam­ing problem
  2. Inte­grat­ing a default Assem­bly workbench
  3. Cre­at­ing a uni­fied Mate­r­i­al-han­dling system
  4. Improv­ing the basic user experience

We also dis­cussed a need to improve ter­mi­nol­o­gy as a sub-focus area for v1.0, which is close­ly tied to item 4. In fact, near­ly all remain­ing dis­cus­sion for the week­end focused on one or more of those four items.

Assem­bly Work­bench. It came up at FreeCAD Day 2023, it comes up in the forums on a reg­u­lar basis, and it comes up in dis­cus­sions with end users: FreeCAD needs a default, built-in Assem­bly work­bench. It does not nec­es­sar­i­ly have to have every pos­si­ble sort of work­flow, or solve all assem­bly-relat­ed prob­lems, but it should at the least address basic assem­bly tasks. Ond­sel pub­lished a series of blog posts detail­ing that com­pa­ny’s analy­sis of the sit­u­a­tion, and in recent months they have been active­ly work­ing to devel­op one of the core tech­nolo­gies antic­i­pat­ed for that work­bench: a ful­ly 3D con­straint solver with a com­pat­i­ble license. The next order of busi­ness was to decide which of the var­i­ous avail­able paths we intend to follow:

  1. Inte­grate the new solver into @realthunder’s Assem­bly 3 Work­bench, and then inte­grate that exter­nal work­bench direct­ly into FreeCAD. @realthunder seems very enthu­si­as­tic about the new solver, so it seems like­ly that at least the first part of this will hap­pen in very short order.
  2. Inte­grate @zolko’s Assem­bly 4 Work­bench into FreeCAD and extend it to include the solver.
  3. Devel­op a new Assem­bly user inter­face direct­ly in FreeCAD, tak­ing inspi­ra­tion from Asm3 and Asm4 and com­bin­ing those ideas into a sim­pli­fied, stream­lined workbench.

In gen­er­al it was felt that Assem­bly 3’s user inter­face was too com­plex to be inte­grat­ed on its own, and that Assem­bly 4’s lack of solver pre­sent­ed a sig­nif­i­cant chal­lenge to direct adop­tion. There­fore the planned approach is to cre­ate a new solver user inter­face in FreeCAD that pro­vides sim­pli­fied access to the most com­mon assem­bly tools, and that pro­vides a stan­dard API for assem­blies that exter­nal work­bench authors can use to be com­pat­i­ble with both that work­bench and each other.

User Inter­face Col­ors. FreeCAD’s default back­ground gra­di­ent and the col­or scheme of var­i­ous UI ele­ments present a near­ly unus­able inter­face for those with col­or vision defi­cien­cy, and the low con­trast inher­ent in the cur­rent design presents some visu­al chal­lenges even for those with­out vision impair­ment. A group of devel­op­ers and users met (vir­tu­al­ly) to dis­cuss the ongo­ing research project of theme devel­op­er @Obelisk, who is attempt­ing to cre­ate both a set of new light and dark themes based on exist­ing work from a num­ber of oth­er theme authors, as well as to adapt the col­or scheme of the “clas­sic” FreeCAD expe­ri­ence to be more friend­ly to every­one. While we don’t expect this work to be with­out con­tro­ver­sy, hav­ing a sol­id tech­ni­cal basis for mak­ing these sorts of deci­sions will help us to move for­ward with the project.

Inte­grat­ing a Rust Library. A very appeal­ing project from the Rust world led to a dis­cus­sion about the fea­si­bil­i­ty of inte­grat­ing a Rust library into our code­base for use in the Path work­bench. There are a vari­ety of pros and cons relat­ed most­ly to pack­ag­ing issues (and no, we did not dis­cuss rewrit­ing FreeCAD in Rust!) but the over­all con­sen­sus was that the upside of the advanced library out­weighed the down­side of pack­ag­ing com­plex­i­ty, and that it is worth attempt­ing in this lim­it­ed appli­ca­tion to see how it goes.

Topon­am­ing Next Steps. @JohnAD, Ond­sel Devel­op­er and team lead for the TNP mit­i­ga­tion project worked with var­i­ous devel­op­ers to work out what the next phase of that project looks like, and pub­lished the next set of steps we need to under­take. Things get excit­ing right about now, as we actu­al­ly begin using the sys­tem to track ele­ment his­to­ry. Help want­ed! If you are inter­est­ed in learn­ing what this TNP thing is all about, and want to assist in the project, drop me a line and I’ll get you an invite to the group Telegram chat.

Task pan­el, tree view, and steal­ing focus (oh my!). At the FreeCAD Day meet­up at FOSDEM in Brus­sels ear­li­er this year, a con­sis­tent user com­plaint had to do with inter­ac­tions between the Task Pan­el, the Tree View, and var­i­ous ways that things could go awry when using them. That con­tin­ued to be an active area of dis­cus­sion at the event this week­end, with var­i­ous pro­pos­als for help­ing to mit­i­gate these sorts of prob­lems. There were a num­ber of pro­posed solu­tions, but be on the look­out in the com­ing months for PR’s relat­ed to a “Speed Bar.”

And more! Dozens of oth­er small­er dis­cus­sions cropped up dur­ing the event: switch­ing from tool­bars to a rib­bon, improv­ing the doc­u­men­ta­tion, clean­ing up the track­er, not mov­ing our tool­bars around(!!), and improv­ing the nam­ing of things, just to name a few. 

Thanks to every­one who attend­ed, in per­son and vir­tu­al­ly. I hope that we can have more of these mee­tups, across the globe, as FreeCAD devel­op­ment moves for­ward. We don’t have any offi­cial dates yet for FOSDEM 2024 (like­ly ear­ly Feb­ru­ary), but you can be assured that FreeCAD devel­op­ers and users will cer­tain­ly coor­di­nate a meet­ing around that event. I have heard of a cou­ple of oth­er groups look­ing to plan events: if you are inter­est­ed, please reach out to the FreeCAD Project Asso­ci­a­tion — fund­ing is available!

2 responses to “Vancouver Hackathon Wrap-up”

  1. Are there any videos of the presentations?

    1. No, we did­n’t record any of it.

%d bloggers like this: