> it's basically impossible to sync green traffic lights in both directions.
For a bi-directional green wave, intersections have to be spaced at intervals consistent half the cycle time (times the intended travel speed) of the traffic lights. In that case opposing vehicle streams will always meet each other at an intersection, thereby minimising the green time required along the green wave and maximising the green time available for handling crossing and turning traffic.
If an intersection deviates from that mathematically optimal location, it means that there'll be less of an overlap between the green times for the two opposing direction, meaning that there's less green time left over for cross traffic.
And since in real life, intersections are rarely spaced at the mathematically optimal interval, in practice this means that eventually you have to give up and just favour one direction depending on the time of the day. (To some extent you can try to salvage things by varying the assumed speed between intersections in order to keep the travel time from intersection to intersection constant, but there's only a limited usable speed range between too slow and the legal speed limit.)
And if you attempt to have multiple green waves crossing each other, you introduce even more scheduling constraints which might leave no room for a perfect solution.