EEVblog Electronics Community Forum
EEVblog => EEVblog Specific => Topic started by: EEVblog on March 28, 2023, 11:28:18 pm
-
Is the AI Machine Learning based DeepPCB autorouter better than Dave at routing a simple double sided PCB? Let's try it! TLDR; It sucks.
https://www.youtube.com/watch?v=HJVy8LAI_Bc (https://www.youtube.com/watch?v=HJVy8LAI_Bc)
-
The beauty of buzzwords. Terms devoid of meaning so much, that you can call anything “AI” or “deep”! After all the user can’t verify it.
My initial guess was, that this is just a “traditional” autorouter. But it seems the company does some research in machine learning, which suggests that the router may contain this technology. The questions remain: how much of it? How it is used? Does it even have any real impact on the solutions?
From the video two things may be guessed. Some kind of a recursive optimization approach is used. The program clearly has some initial guesses and tries to make them better, quickly getting trapped in a local extremum. This doesn’t leave much space for ML algorithms. Secondly, the model it uses is based on 2-dimensional cartesian planes, not a graph describing the solution. This is a much weaker guess, but the number of weirdly shaped traces seems way too big for the latter.
Which is sad, because it’s just “throw a smortnet against the wall and see if it sticks”. Instead of trying to solve the problem using the most appropriate mathematical abstraction and using ML to improve or avoid the hardest steps. :(
-
So, they have not progressed in all since I tested them last time. I had better results using "Freerouting", and almost usable results after setting up cost functions, net classes and proper constraints.
-
I feel pretty confident that a good auto-router should be possible with current AI technology.
There's probably just no-one willing to put in 10 million to develop it.
But with ChatGPT/OpenAI now a thing it's probably that building a good auto-router AI is much cheaper now.
-
I feel pretty confident that a good auto-router should be possible with current AI technology.
There's probably just no-one willing to put in 10 billion to develop it.
But with ChatGPT/OpenAI now a thing it's probably that building a good auto-router AI is much cheaper now.
Nah, come on. The price tag on an AI autorouter is not 10 billion ;)
-
TLDR; It sucks.
Thank goodness :) ...for now :-\
-
I feel pretty confident that a good auto-router should be possible with current AI technology.
There's probably just no-one willing to put in 10 billion to develop it.
But with ChatGPT/OpenAI now a thing it's probably that building a good auto-router AI is much cheaper now.
Nah, come on. The price tag on an AI autorouter is not 10 billion ;)
ops. I mean to write million. haha
-
It's... odd to call an auto/AI-routed design a "Fail"* just because it's routed differently from how a human would have done it. Did anyone claim that his autoRouter produces aesthetically superior results? Or stated that it works just like a human designer?
*The word "Fail" is currently in the YouTube video title.
Personally, I appreciate a visually pleasing PCB as much as anyone, but that probably shouldn't be the point here. Assuming the autoRouter produces a complete solution, I believe the reasonable questions should be:
- Will the circuit work to spec?
- Is it more prone to production/mechanical/electronic faults than a human design?
- Will it be easier to bodge, when the need arises?
- Is it, all things considered, cheaper and/or faster to design?
-
I wonder if it would be more viable if the input was the process of a human designer working, instead of the finished result.
-
It's... odd to call an auto/AI-routed design a "Fail"* just because it's routed differently from how a human would have done it. Did anyone claim that his autoRouter produces aesthetically superior results? Or stated that it works just like a human designer?
*The word "Fail" is currently in the YouTube video title.
Personally, I appreciate a visually pleasing PCB as much as anyone, but that probably shouldn't be the point here. Assuming the autoRouter produces a complete solution, I believe the reasonable questions should be:
- Will the circuit work to spec?
- Is it more prone to production/mechanical/electronic faults than a human design?
- Will it be easier to bodge, when the need arises?
- Is it, all things considered, cheaper and/or faster to design?
The thing is - it didn't produce a complete solution. Hence the title "FAIL" is appropriate.
Also:
- didn't produce a complete solution
- wasn't faster than a human
- got itself stuck in a corner and the result was FUBAR.
- performed worse than a traditional autorouter solution.
-
The thing is - it didn't produce a complete solution. Hence the title "FAIL" is appropriate.
As far as that one specific test was concerned, true.
But that's not what Dave talked about for over 90% of the video (also, if I remember correctly, a solution was found after a very short time, the service just decided to keep on going and then messed it up).
-
I think the main "fail" was that it was making dumb mistakes that would have been trivial to avoid with some very simple rules.
-
Dave, could you make the DSN file available?
I'd like to compare with the result of Freerouting - I think it can hardly be worse :)
-
Not completing the job is a fail. Routing in the more traditional way without strong directional restrictions is a tough problem and it is not a surprise to have it fail. The altium auto-router also did fail, though it got a little further - still both solutions are far from complete. Even just 1 missing link would not be working PCP.
I did not see traces relatively close togther and this may indicate that it got some more stringent design rule that could make a solution impossible.
With a 2 layer baord a rather stupid autorouter could produce a sulution with brute force separation of horizontal and vertical. It would be an ugly solution with maybe thousands of vias, but changes are high it would work for the board shown.
I would not make too much of some of the odd corners and silly looking details. A reasonable routing process is usually first to get a valid solution and than have some optimization and clean up step. The AI based router may still have that and just never reached that stage. It could even be a combination of a classic try and error router for the first step and the AI only in the clean up and optimize stage that it never reached. If this would work, I would not mind.
-
Dave, could you make the DSN file available?
I'd like to compare with the result of Freerouting - I think it can hardly be worse :)
Oh really?
Freerouting is actually not half bad for an autorouter. I've definitely seen way worse.
-
I wonder if it would be more viable if the input was the process of a human designer working, instead of the finished result.
Yes, it would surely greatly benefit from live training.
-
Deep PCB replied:
Hi Dave,
We are glad that DeepPCB got your interest, some team members even follow your blog and YouTube channel! I am Nabil, Product Manager for DeepPCB.
We looked at the board you submitted and found a web issue on our end. We pushed the run back to your account and you can check it out now.
We routed your board using our more advanced, unreleased version of DeepPCB to get you better results. Your board is fully routed with 163 vias, after 7 hours. There is some minor tidy-up to be done.
Unfortunately, we waited to get better results before sending you this email and your video was already out. We appreciate your feedback and after watching the video, here are the answers to some of your questions:
The beta version is limited to 150 pairs. A pair is an airwire or a ratsnest. Your board has 238 of these, which exceeds the capability of our beta version. However, we don’t block runs that exceed this limit and your board could go through.
When we released DeepPCB, we only sent a solution after 24 hours (the best solution) but users were skeptical and suspected boards to be manually routed. We then decided to let the users see the intermediate solutions that the AI found.
Our router uses reinforcement learning. The algorithm is about learning from trial and error. This explains the quality of the first solutions that you saw.
Your board has a circular pin component and some non-45 degrees pins. Our AI has never seen these, which is why it needed more time to find reasonable solutions.
We expect our AI agent to find good solutions by itself. This means discovering routing patterns. For instance, we have some boards in which the AI uses one layer with horizontal connections only, and the other one for vertical connections. We can share with you some boards having this property.
DeepPCB also supports planes. We maximize their area and make sure they don’t get cut. As we’ve seen that your manually routed board has a plane defined, we’re happy to try another run with it.
We support multi-width clearance definitions for the nets as well. We expect high voltage to be thicker and we can include this in future runs if needed.
It seems that the information on netclasses and the plane didn’t get through when Altium was used.
Finally, we would like to mention that we’re still in startup mode and we’re doing our best to innovate around Place & Route for PCB. The beta version you recently tested is not meant to be a sold product. We need a few more improvements but we’re getting there step by step!
We’re happy to get on a call with you to give more details and answer any questions you may have.
Regards
Nabil
-
We expect our AI agent to find good solutions by itself. This means discovering routing patterns. For instance, we have some boards in which the AI uses one layer with horizontal connections only, and the other one for vertical connections. We can share with you some boards having this property.
:-DD
Back to I don't remember which year. Soon this AI will decide to provide you some tape and decals delivered to you by someone on a horse. But maybe I'm not qualified to comment on this because long ago some member of this board told me that a board I routed looked as if it was done by a schizophrenic because it used two different routing strategies. Of course we got along fine.
-
I feel pretty confident that a good auto-router should be possible with current AI technology.
There's probably just no-one willing to put in 10 billion to develop it.
But with ChatGPT/OpenAI now a thing it's probably that building a good auto-router AI is much cheaper now.
Nah, come on. The price tag on an AI autorouter is not 10 billion ;)
ops. I mean to write million. haha
You were probably more correct with your original post.
S/W projects do tend to significantly overrun their initial budgets.
-
Altium marketing are absolute fools for not giving you a free permanent license.
Deep PCB replied:
We routed your board using our more advanced, unreleased version of DeepPCB to get you better results. Your board is fully routed with 163 vias, after 7 hours. There is some minor tidy-up to be done.
LOL 7 hours with nvidia and cloud processing.
Our router uses reinforcement learning. The algorithm is about learning from trial and error. This explains the quality of the first solutions that you saw.
aka brute forces the solution, which is why it took 7 hours.
We expect our AI agent to find good solutions by itself. This means discovering routing patterns. For instance, we have some boards in which the AI uses one layer with horizontal connections only, and the other one for vertical connections. We can share with you some boards having this property.
That sounds like bs, it would maybe make more sense to have an option: "top layer - auto/vertical/horizontal/none", which is what the Altium autorouter has.
-
Altium marketing are absolute fools for not giving you a free permanent license.
They did every year for quite a few years, but someone who handled the renewal every year seems gone, and now no one else seems interested.
-
The company is called InstaDeep, DeepPCB is one of theirproduct. It's a Tunisian company and i had a talk with their developers, they were trying to promote the thing and i said to them exactly what Dave said, and heavily criticized even the routing example they showed in their presentation, it was a simple pcb yet horribly routed.
To their defense, they are not in anyway related to pcb design business and what they end up saying in their presentation that the tool is mostly part of "decision making" algorithms that they are developing.
Useless.
Hamdi
-
Altium marketing are absolute fools for not giving you a free permanent license.
They did every year for quite a few years, but someone who handled the renewal every year seems gone, and now no one else seems interested.
Sounds like you need to make a video and mention they've decided to stop supporting the eevblog.
And talk about your plans to make more educational videos about kicad/diptrace/etc...
There's nothing like publicity and fear of losing future customers to get them into gear. :popcorn:
-
Dave, could you make the DSN file available?
I'd like to compare with the result of Freerouting - I think it can hardly be worse :)
+1
would like to compare it with Topor...
-
Oh really?
Freerouting is actually not half bad for an autorouter. I've definitely seen way worse.
I think you misunderstood me. I tried Freerouting a couple of times and was pleasantly surprised.
What I wanted to express was that I think the results of Freerouting will likely be better (or at least not worse) than those of DeepPCB.
-
This was linked in the previous thread years ago, to demonstrate what Dave said about saving time on point to point routing:
www.youtube.com/watch?v=yaxSUBfTy7A (https://www.youtube.com/watch?v=yaxSUBfTy7A)
But slightly misleading as the trace space design rules are not the same.
-
Oh really?
Freerouting is actually not half bad for an autorouter. I've definitely seen way worse.
I think you misunderstood me. I tried Freerouting a couple of times and was pleasantly surprised.
What I wanted to express was that I think the results of Freerouting will likely be better (or at least not worse) than those of DeepPCB.
Yep your sentence looked ambiguous as to which one would be worse. Thus my answer.
That said, 3 general points regarding autorouting even with Freerouting:
1. Autorouting 1- or 2-layer PCBs is almost always atrocious unless it's a dead-simple circuit. Especially the routing of power supplies and grounds.
2. You should never let an autorouter route 100% of your PCB from scratch. The few times I have used Freerouting (on large boards with a lot of non-critical digital signals), I have routed all power supplies and bypass capacitors manually, then let the autorouter finish the job. Then hand-corrected a few traces.
3. Related to 1, if you can use 4-layer or more, define your power planes beforehand (for Freerouting, there's a documented way of doing it so that the autorouter knows about your power planes). In this case, you can do without hand-routing power supplies in most cases (except for routing switching power supplies, which can be disastrous with an autorouter). Also define net classes. Preparing a PCB for autorouting takes a while, don't expect it to be a 2-second point & click affair.
-
Goal achive. Their parent company got gobbled up by a bigger fish:
https://techcrunch.com/2023/01/10/biontech-acquires-tunisian-born-and-u-k-based-ai-startup-instadeep-for-562m/
-
This was linked in the previous thread years ago, to demonstrate what Dave said about saving time on point to point routing:
www.youtube.com/watch?v=yaxSUBfTy7A (https://www.youtube.com/watch?v=yaxSUBfTy7A)
But slightly misleading as the trace space design rules are not the same.
I don't recall seeing that, but I think Altium did contact me for the file.
Yes, that's a just a grouped version of auto routing a single connection which you can also do, and is very handle for those "last mile" traces if would be a PITA to route yourself at the end of a project. Group selected routing works well becasue the human is selecting what's likely to route and what isn't. Essentially a manual priority based pre-conditional setup for the routing.
-
Personally, I appreciate a visually pleasing PCB as much as anyone, but that probably shouldn't be the point here. Assuming the autoRouter produces a complete solution, I believe the reasonable questions should be:
- Will the circuit work to spec?
- Is it more prone to production/mechanical/electronic faults than a human design?
- Will it be easier to bodge, when the need arises?
- Is it, all things considered, cheaper and/or faster to design?
Readability of the traces is also a goal, isn’t it?
However, in this case it may be considered a fail. Not because it’s not aesthetically pleasing. Not even due to not finishing the routing and still this taking more than a human would need. It is a fail, because the mistakes it made indicate it has serious trouble with following basic heuristics and making no-cost simplifications. It generates traces and makes choices, which will get in its own way with more complicated designs.
-
Goal achive. Their parent company got gobbled up by a bigger fish:
https://techcrunch.com/2023/01/10/biontech-acquires-tunisian-born-and-u-k-based-ai-startup-instadeep-for-562m/
Biontech, the "vaccine" company... :-DD
-
I decided to put DeepPCB to a test myself, giving them the same PCB I used a few years back. It completed after about 2 hours but didn't produce a complete solution.
Then I ran the same PCB through freerouting, it produced a complete solution in 10 minutes. Using less Vias than DeepPCB (49 vs. 77).
Both were working under the same constraints, using netclasses and manufacturing constraints I had set up in KiCad.
I've attached both results. I've also attached the human-routed PCB. Note that it used more Vias (88), but many of them were for stitching planes together.
-
Personally, I appreciate a visually pleasing PCB as much as anyone, but that probably shouldn't be the point here. Assuming the autoRouter produces a complete solution, I believe the reasonable questions should be: [...]
Readability of the traces is also a goal, isn’t it?
First of all, given the further information that was provided here since my previous post, I guess I'll have to redact most of what I wrote :D
But as a general question, under the umbrella of "Can computers route traces"? I doubt readability is a goal, certainly in the long term, because the whole point is to take humans out of the loop as much as possible, and only humans need it "readable".
Perhaps a good comparison would be to the famous google.com page source code. We humans really love readable code, but the goal there is simply function and performance.
-
The the auto-router failed alread the the much simpler example is a bit embarassing for the AI. This one looks really simple and freerouting had not problem with this.
Dave's example was already a bit on the difficult side, as the auto-router of Altium also failed on the that job.
There is usually no real need to have a PCB layout readable. There are more other constraints or secondary targets, like keeping am intact ground plane, minimizing cross talk or emissions or the number of vias that matter. I don't think the current exampled did care about this. If a computer would produce a well working layout that looks uggly, this would be OK. The main point is getting a layout that gets all connections done - a partial solution is pretty useless (maybe OK for a 1 off with using an extra bodge wire).
-
It is very interesting to follow the development of autorouter. However, it must be stated that not much real development has taken place during the last decades. In the blog example, the connection was quite simple. Maybe a few major rules that should be followed. What if the autorouter was given the task of wiring a DC/DC (buck) converter, where certain things that strongly affect the operation must be taken into account, such as the ground loop between input and output. What about considerably more complex integrated circuits such as PLL Synthesizers, ADCs etc. All of these have many special features that must be taken into account in the PCB layout, which is ultimately a compromise from the reference design provided by the IC vendor. And I haven't mentioned RF circuits yet, where the design rules and practices differ a lot compared to the DC world.
-
It is very interesting to follow the development of autorouter. However, it must be stated that not much real development has taken place during the last decades. In the blog example, the connection was quite simple. Maybe a few major rules that should be followed. What if the autorouter was given the task of wiring a DC/DC (buck) converter, where certain things that strongly affect the operation must be taken into account, such as the ground loop between input and output. What about considerably more complex integrated circuits such as PLL Synthesizers, ADCs etc. All of these have many special features that must be taken into account in the PCB layout, which is ultimately a compromise from the reference design provided by the IC vendor. And I haven't mentioned RF circuits yet, where the design rules and practices differ a lot compared to the DC world.
Maybe a DC-DC converter is a bad choice, but I've seen Altium's autorouter do a good job on DDR memory interfaces where length and phase matching (including internal delays in the packages) needs to be taken into account. It is pretty tedious to do this manually. It all comes down to setting up the constraints properly.
-
It is very interesting to follow the development of autorouter. However, it must be stated that not much real development has taken place during the last decades. In the blog example, the connection was quite simple. Maybe a few major rules that should be followed. What if the autorouter was given the task of wiring a DC/DC (buck) converter, where certain things that strongly affect the operation must be taken into account, such as the ground loop between input and output. What about considerably more complex integrated circuits such as PLL Synthesizers, ADCs etc. All of these have many special features that must be taken into account in the PCB layout, which is ultimately a compromise from the reference design provided by the IC vendor. And I haven't mentioned RF circuits yet, where the design rules and practices differ a lot compared to the DC world.
Maybe a DC-DC converter is a bad choice, but I've seen Altium's autorouter do a good job on DDR memory interfaces where length and phase matching (including internal delays in the packages) needs to be taken into account. It is pretty tedious to do this manually. It all comes down to setting up the constraints properly.
Yeah but just in general they could make the constraint setup much more user friendly, and visual, if they actually wanted to expand auto router use.
eg: click on a trace/net in the schematic, type in its minimum current: 5A, now it shows above the trace. Click on the DC/DC feedback trace, select "route shortest possible". Something like that.
-
It is very interesting to follow the development of autorouter. However, it must be stated that not much real development has taken place during the last decades. In the blog example, the connection was quite simple. Maybe a few major rules that should be followed. What if the autorouter was given the task of wiring a DC/DC (buck) converter, where certain things that strongly affect the operation must be taken into account, such as the ground loop between input and output. What about considerably more complex integrated circuits such as PLL Synthesizers, ADCs etc. All of these have many special features that must be taken into account in the PCB layout, which is ultimately a compromise from the reference design provided by the IC vendor. And I haven't mentioned RF circuits yet, where the design rules and practices differ a lot compared to the DC world.
Maybe a DC-DC converter is a bad choice, but I've seen Altium's autorouter do a good job on DDR memory interfaces where length and phase matching (including internal delays in the packages) needs to be taken into account. It is pretty tedious to do this manually. It all comes down to setting up the constraints properly.
That's the kind of use cases that I think make autorouters useful.
But placement is the critical part, and can be very tedious. I would definitely favor a good autoplacer over any autorouter.
-
It is very interesting to follow the development of autorouter. However, it must be stated that not much real development has taken place during the last decades. In the blog example, the connection was quite simple. Maybe a few major rules that should be followed. What if the autorouter was given the task of wiring a DC/DC (buck) converter, where certain things that strongly affect the operation must be taken into account, such as the ground loop between input and output. What about considerably more complex integrated circuits such as PLL Synthesizers, ADCs etc. All of these have many special features that must be taken into account in the PCB layout, which is ultimately a compromise from the reference design provided by the IC vendor. And I haven't mentioned RF circuits yet, where the design rules and practices differ a lot compared to the DC world.
Maybe a DC-DC converter is a bad choice, but I've seen Altium's autorouter do a good job on DDR memory interfaces where length and phase matching (including internal delays in the packages) needs to be taken into account. It is pretty tedious to do this manually. It all comes down to setting up the constraints properly.
That's the kind of use cases that I think make autorouters useful.
But placement is the critical part, and can be very tedious. I would definitely favor a good autoplacer over any autorouter.
Absolutely. Even something that grouped parts together based on the "length" and count of crossings of ratsnest lines would be a big help for initial placement. Maybe if one considered ratsnest lines as rubber bands? There are visualization tools able to work out clusters that way.
-
It is very interesting to follow the development of autorouter. However, it must be stated that not much real development has taken place during the last decades. In the blog example, the connection was quite simple. Maybe a few major rules that should be followed. What if the autorouter was given the task of wiring a DC/DC (buck) converter, where certain things that strongly affect the operation must be taken into account, such as the ground loop between input and output. What about considerably more complex integrated circuits such as PLL Synthesizers, ADCs etc. All of these have many special features that must be taken into account in the PCB layout, which is ultimately a compromise from the reference design provided by the IC vendor. And I haven't mentioned RF circuits yet, where the design rules and practices differ a lot compared to the DC world.
Maybe a DC-DC converter is a bad choice, but I've seen Altium's autorouter do a good job on DDR memory interfaces where length and phase matching (including internal delays in the packages) needs to be taken into account. It is pretty tedious to do this manually. It all comes down to setting up the constraints properly.
That's the kind of use cases that I think make autorouters useful.
But placement is the critical part, and can be very tedious. I would definitely favor a good autoplacer over any autorouter.
You have a very good point here. In many cases I spend more time on placement than routing.
-
Of cause it depends on the PCB, but in many cases the placement and rounting are not really separate. It is quite common to move / rotate parts while doing the routing. In some cases this can even include changing the case / pinout of some parts. Some SMD parts like OP-amps come with different versions to ease on the layout.
Another classic is swapping equivalent pins on some parts (e.g. the data lines on RAM chips).
Doing lenght matched buses is defintely something to let some comupter do. This is usually also one of the easier parts for the computer.
The point where autorouters are a bit weak is when it comes to the topological decisions, so the question of going left or right way around - especially if the leads to a solution where no individual connection gets the direct way on its own, but all have to compromise.
-
The the auto-router failed alread the the much simpler example is a bit embarassing for the AI. This one looks really simple and freerouting had not problem with this.
Dave's example was already a bit on the difficult side, as the auto-router of Altium also failed on the that job.
To be fair to Altium, that video of Altium doing selective autorouting is excellent.
It's not a stretch to expect magical AI to at least figure out some selective way to route local location based group nets like that.
-
Chris interviewed another AI PCB company I hadn't heard of last week, Quilter. Haven't listened to it yet:
https://theamphour.com/626-intelligent-routing-with-sergiy-nesterenko/ (https://theamphour.com/626-intelligent-routing-with-sergiy-nesterenko/)
https://www.quilter.ai/ (https://www.quilter.ai/)
-
I feel like I'm missing something.
1) DeepPCB has been "out" for over three years as a product and has amazed approximately 0% of users. It has not been continuously improved and seems to be basically stale/unmaintained code: In other words, a zombie living on AWS.
A zombie that made bank. DeepPCB was part of Instadeep that got acquired.
https://techcrunch.com/2023/01/10/biontech-acquires-tunisian-born-and-u-k-based-ai-startup-instadeep-for-562m/
-
Yeah, doesn't matter if they sat around doing nothing of value, if investors were impressed.
Chris interviewed another AI PCB company I hadn't heard of last week, Quilter. Haven't listened to it yet:
https://theamphour.com/626-intelligent-routing-with-sergiy-nesterenko/ (https://theamphour.com/626-intelligent-routing-with-sergiy-nesterenko/)
https://www.quilter.ai/ (https://www.quilter.ai/)
Here is one of their example boards on the site.
The use of any-angled traces could work well in some situations. But it also means a human going in a selectively re-routing is going to have a painful experience.
(https://www.eevblog.com/forum/blog/eevblog-1535-deeppcb-ai-autorouting-tested!/?action=dlattach;attach=1758956;image)
-
Here is one of their example boards on the site.
The use of any-angled traces could work well in some situations. But it also means a human going in a selectively re-routing is going to have a painful experience.
Seriously? The released that as an example? :palm:
-
Yeah, doesn't matter if they sat around doing nothing of value, if investors were impressed.
Chris interviewed another AI PCB company I hadn't heard of last week, Quilter. Haven't listened to it yet:
https://theamphour.com/626-intelligent-routing-with-sergiy-nesterenko/ (https://theamphour.com/626-intelligent-routing-with-sergiy-nesterenko/)
https://www.quilter.ai/ (https://www.quilter.ai/)
Here is one of their example boards on the site.
The use of any-angled traces could work well in some situations. But it also means a human going in a selectively re-routing is going to have a painful experience.
(...)
Very nice!! :-DD
-
I should use any-angle traces more often...
Its useful on single sided boards with limited space. But don't start the layout until everything is placed, push and shove with these traces doesn't work well (altium).
Rounded traces are another fun one to do.
On a rectangular board like this with tons of space it makes no sense.
-
it definitely screams "solve by greedy algorithm on a graph".
Hey, they at least used a graph! Appreciate that!
-
FYI, Altium contacted me and said they'll give a me pro license again :-+