FYI, the Google Copyright Blog, linked above, contains links to the parties recent motions and the judge’s final ruling in the case. I just read through the judge’s decision and it’s fascinating, though I’m not sure how to explain why without getting into much tech talk and approaching the limits of my old NDAs. However, since the ruling is now public, I can comment on things that are public.
Suffice it to say, one of the critical issues the judge determined was that Skyline has in no way proved that GE uses a "renderer" as the patent describes. Now, anything that seems to "render" 3D images can be said, in some broad sense, to have a "renderer" somewhere in the code. But it’s not that simple. An apparatus that "makes coffee," to use the judge’s example, is not necessarily "a coffeemaker."
It seems that here, the critical difference is that Skyline’s "renderer," as they described it in that fuzzy curious patent of theirs, includes both the image generation routines and the data streaming functionality, among other things. The judge ruled that there is no common block of code in GE that does the same thing. It sounds like a bit of a technicality at first. But that clear design decision from early on is one of the things that probably makes GE more efficient and more responsive than Skyline’s approach.
As I understand Skyline’s technical history, they started as an optimized software-only "height-field" terrain renderer, way before cheap 3D hardware. That approach is practically obsolete nowadays, given modern hardware acceleration, except in special cases like per-pixel "bump mapping" for surface detail (aka "parallax bump mapping", done in programmable graphics hardware). And that might help explain their stated approach to so tightly integrate data-streaming and drawing.
But GE comes from a real-time vis-sim background, where things work very differently. The high(est) priority is always to maintain a solid (often 60hz) frame-rate, which means decoupling almost everything from the pure act of drawing polygons as fast and as deterministically as possible. The streaming parts of GE can be most easily thought of as a whole other program (a thread at least), running asynchronously from the part that draws the Earth. Skyline’s patent claims fail on those grounds alone.
Another interesting aspect of the ruling, and a whole other ground for dismissal, is the idea that GE doesn’t send "coordinates" as described the patent. That jumped out at me when I first read the patent, when the suit was announced so many years ago. The patent is very specific that the "renderer" must send coordinates and get the corresponding "pluralities" of terrain tiles and whatnot. Again, that makes some sense for a height-field renderer, at least one that loads new detail from fast memory. It’s one of the reasons I reasoned that they might not have solved these problems on the grandest scale. It doesn’t work too well on the internet.
Without going into too much gory detail, it’s incredibly inefficient for a whole-earth-streaming client to send hundreds of thousands of similar messages to a server, each saying, "hey, I need another tile for this X,Y and this level of zoom." The judge seems to understand that GE has a much more efficient way of both encoding space and of telling the server what it needs or may soon need. Again, there is an efficient decoupling of rendering-side concepts, like "culling" invisible parts of a scene away, vs. the hard-to-scale aspects of streaming terabytes of data over 100kbs internet connections.
And the judge seemed to hone right in on this, as well as the sheer stupidity of Skyline reporting their algorithm as fetching new tiles when the resolution is "not equal" to the desired resolution. You really only want new tiles when the resolution of the current tile set is too low (a greater-than test vs. a not-equals test).
I’m quite impressed with the judge’s understanding of those aspects, though not having heard the actual arguments and expert testimony, I don’t know how much credit to give to Google’s lawyers as well. And while the judge seemed to avoid ruling on the actual validity of the patent, that last bit, I hope, would make it easier for anyone else to challenge the patent. The invention, as described, and perhaps too-hastily blessed by the USPTO, seems not to work as well as is claimed.
Anyway, what it comes down to for me is I’ve regained some sense of hope that the patent system occasionally works. Of course, it requires the resources of a GooglePlex to actually fight and win against a bogus patent claim and get to the point where justice (IMO) is done. A smaller company might be forced to settle in the same situation. But I consider this a small victory for fairness and innovation. And I send a hearty congratulations to the GE team for dealing with and overcoming this unfortunate obstacle.
[Afterthought: it looks as if discovery in this case involved disclosing GE’s full source code to Skyline. I wonder what happens if Skyline appears to use that information to improve their products? Does anyone know?]