I have not looked into the forums in the meantime, sorry!
I just uploaded a new version, a rudimentary KiCad integration for testing purposes is now there (does not generate any real vias yet, just extracts the paths and does the thing). See my developers mailing list post:
Regarding the Via/Pad problem: I already stumbled upon that in your Via Stitching. However, I think it is beneficial to use a temporary component, because I think that you could give it a name like "via-fence-[net]" or something. Then if you go into the board after you have done some modifications and you would like to delete or redo the via-fencing, you can safely identify the old vias by their name. Right? Is there any downside to using components instead of vias?
@jsreynaud: Your approach was the first thing I had in mind also! But I really liked to have vias on a rounded arc so their offset to the trace is always the same. This is especially possible, when you want to use this thing for substrate integrated waveguides (see mailing list post). They are really sensitive against this, since the vias set the width of your waveguide and you don't want that to change.
Now, how about the wx Interface First things first: I am an algorithm guy, no GUI guy. But I would really like a nice small GUI where you can set some settings or values for the algorithm. How would you do that actually? Do you just use the python wx bindings and spin up your own GUI (with its own message loop?) or are there any fixtures in the pcbnew API to make GUI windows?
To avoid collision with other elements, I am also still unsure. Currently I am thinking to first let the algorithm do its thing and then filter out vias that make any collisions. I have seen in your via stitching code, that you have done this all by yourself, that must have been painful . No other way, hm? I read somewhere in the API that there are some HitTest functions. Maybe one could use them? Just to be sure, there is no way to make a DRC test just on one specific via and see if it fails?