<div dir="ltr"><br><br>On Thu, 22 Feb 2024 at 17:38, Valentin BUIRA via QGIS-Developer <<a href="mailto:qgis-developer@lists.osgeo.org">qgis-developer@lists.osgeo.org</a>> wrote:<br>><br>> Hi qgis developers<br>><br>> My name is Valentin Buira, I'm a french student in urban planning and I'm interested in participating in this year Google Summer of Code to improve the graphical modeler.<br>><br>> In particular I am interested in improving the user interface(UI) and user experience (UX) of the graphical modeler based on my previous experience with other node-based applications. If you are familiar with Blender the inspiration will be obvious to you but I tried to adapt to the identity and features of Qgis like the expression engine.<br>><br>> You can find the proposal at the url : <a href="https://docs.google.com/document/d/1iXHMTylTHLljfHBITfuIfJzi4_4hpQifEvj5GkM8OCc/edit?usp=sharing">https://docs.google.com/document/d/1iXHMTylTHLljfHBITfuIfJzi4_4hpQifEvj5GkM8OCc/edit?usp=sharing</a><br>><br>> So far I am happy with my proposal but I'm looking for feedback and suggestions, and also tips on the technical feasibility and the schedule of the proposal.<br><br>Hi Valentin!<br><br>Just to start with, this looks great and it's really exciting to see someone take this on!<br><br>I do have a couple of suggestions for you before finalising your proposal:<br><br>- I'd suggest cutting back on the scope here. There's a LOT of work here, and a lot of complexity. I'd strongly recommend dropping the extra "quality of life" improvements from your proposal in order to keep your life sane! (As a bit of a hint, take for example "A unified list for every node". I wrote a lot of this code and I would estimate it would take me at least 2 days to do this change, and that's with decades of experience in c++, Qt and the Qt model classes. I just don't think it's realistic that this could be done in the same week as testing + other things). You could easily drop the quality of life changes and still have a very compelling proposal.<div><br></div><div>- Be aware upfront that there's a lot of complexity in the model design and widget handling. In early 3.x releases ALL of this code was done in Python, and there were Python based interfaces for plugins to expose custom widgets for algorithm parameters. Because of stable API restriction, we CAN'T break those interfaces and as a result the current code is a complex interplay of c++ underlying bits with Python glue on top to keep the old interfaces working as originally designed. It's not pretty at all, but unfortunately it can't be cleaned up prior to 4.0 when we can safely remove the old interfaces. Suffice to say, there's going to be a LOT of head scratching when reading over this code and trying to understand how it works together. 🙀</div><div><br></div><div>- Something to consider in your UI designs is that there's two different "types" of expression based values for parameters. One (which you've already covered) is the "precalculated expression" type, where an expression is evaluated once before running the tool and the result used as the value for that parameter. The other is "data defined" parameter values, where the parameter value is evaluated (or taken from a field) once for every feature passing through the algorithm. These are distinct, different concepts, and care will need to be taken to expose them as such in a user-friendly way.</div><div><br></div><div>- Care would need to be taken in handling existing models. I think the new interface would have to be opt-in, as the visual arrangement of models often takes a lot of work and there's definitely users out there who have spent considerable time in arranging their models in a logical way. If we force everyone to use a new visual form for the designer where algorithm blocks are different sizes and the flow appears different, it will be quite frustrating for these users. </div><div><br></div><div>Do you already have a mentor planned for this work? </div><div><br></div><div>Nyall<br><br>><br>> On a side note, I will be attending the local code sprint in Grenoble the 26 mars. Where I will also discuss this proposal in person.<br>><br>> Best regards,<br>> Valentin Buira<br>><br>><br>> _______________________________________________<br>> QGIS-Developer mailing list<br>> <a href="mailto:QGIS-Developer@lists.osgeo.org">QGIS-Developer@lists.osgeo.org</a><br>> List info: <a href="https://lists.osgeo.org/mailman/listinfo/qgis-developer">https://lists.osgeo.org/mailman/listinfo/qgis-developer</a><br>> Unsubscribe: <a href="https://lists.osgeo.org/mailman/listinfo/qgis-developer">https://lists.osgeo.org/mailman/listinfo/qgis-developer</a></div></div>