Hi all,
just a quick note to let you know that I'm considering applying for GSoC 2008. The reason why this doesn't read "I'm going to apply" is that I will graduate in May and don't really know what comes afterwards so there is a small chance that something not yet foreseeable will keep me from participating. But I'd say that the odds are quite good for SoC.
There are 2 projects that I'd be very interested to do.
1) Polishing and improving the 3D box tool and its functionality (obvious, isn't it? :=))
2) Working on improved guide handling as proposed in the blueprint at
http://wiki.inkscape.org/wiki/index.php/SpecGuidesImprovement
Although these two look like rather different kettles of fish, I believe that it would actually be very fruitful to consider them together. To wit, one of the most obvious next steps for 1) would be draggable perspective lines. But if you read the specification for 2) and have a look at the pictures in section "On-canvas editing" there is a striking analogy in functionality (guides can be dragged or rotated about a predefined center, much as perspective lines should be draggable and rotateable around the vanishing point). So what I'd like to propose is to treat these issues together in order to obtain a cleaned-up (--> perfectly in the spirit of 0.47) version of the guideline code which can be reused for draggable perspective lines and probably many more things we're not even thinking of yet. This is of course just a first thought and I will have to make this more precise and boil it down to a good application draft. In particular, I need to think about what kinds of UI improvements would make most sense (and are feasible) with this approach.
On second thought (and on re-reading the guide improvements spec) it may also make sense to unify and improve the handling of guides and layers by allowing, e.g., nested grouping and other things that can be found in the many layers-related RFEs in LaunchPad.
Hmm, obviously I haven't really deliberated on any of this in detail but it seems that there is quite some room for refactoring and unification work in these areas. Any further suggestions from other developers are very welcome, especially if you have concrete suggestions how the refactoring could be done (and also if it applies to different areas).
Finally, here are two further ideas for 3D box-related improvements (other than what you can find in the original proposal[1]):
- More intuitive handling of perspectives using a kind of "trackball" approach (I know there is a RFE in LaunchPad for this but can't find it right now). However, it's not obvious to me how to implement this with the wide variety of seemingly "strange" or degenerated perspectives that are possible in the 3D box tool. I'm certain that it's doable and the mathematics can be figured out but this will require further thoughts.
- Implement a kind of LPE which takes as input an arbitrary path and draws it in some perspective (which may for example be specified by a 3D box). This is a long-standing request and sounds very exciting. I did some experiments with 2geom after last year's SoC and it turned out that this is actually quite easy to do (at least in principle :) although I expect a considerable amount of tweaking to be needed in order to make it really stable and robust). Nonetheless, I feel that we should first put some more work into the overall UI and polishing of the 3D box tool before tackling something like this. For example, the previously mentioned "trackball interface" would provide a very intuitive basis to modify paths which have such a LPE applied to them.
Well, this email has gotton rather lengthy and as I said most of this is not yet very thoroughly thought through (and certainly not yet more than a random collection - sorry, my time is quite limited in these days of examinations). Just wanted to let you participate in my ideas. Any input/comments/suggestions are welcome.
Cheers, Max
[1] It can be found at http://www.rzuser.uni-heidelberg.de/~malbert/