When Ageia hit the scene in 2002, they were a hardware company, plain and simple. The gem of their IP was absolutely their physics engine, which must have been written from the beginning to specifically shine when offloaded onto parallel processors. Their product was a physics engine, but their business model was that of an independent hardware vendor (reminds me of Bigfoot Networks a little). The rest is history, a vicious catch 22 that was insurmountable by such a little fish: Game developers didn't adopt PhysX because there was no install base, and Ageia couldn't sell their hardware because no games actually used it.
So, when NVIDIA stepped in last year, that seemed like a real good answer to the problem. But what actually happened was PhysX went from being proprietary technology with a miniscule market (that is, PC enthusiasts willing to shell out the cash for a PhysX card), to being a proprietary technology with a much bigger market -- but still too small to achieve critical mass and become a standard. That's right, 100 million CUDA-ready GPU's isn't enough, and that's because physics tech is now tied up in GPGPU and parallel computing trends, and all of that is industry-transforming stuff. Parallel computing and GPGPU is an emerging platform, and NVIDIA isn't a company in the position to control it. Ageia was too small to own the hardware-accelerated-physics market, and NVIDIA is too small to own the parallel computing platform.
Newton couldn't control physics -- neither can NVIDIA.
Platform technologies in the PC industry typically can't be proprietary when we're talking about interconnects. And really, they shouldn't be, because these types of technologies are what enable different segments of the industry to work with each other. Take PCI and USB, for example, the development of which was largely done by Intel (with industry support), and then made available royalty-free. That was the plan from day 1, because with standards in place, the entire industry was able to focus on creating products (cameras, printers, sound cards, etc etc) that consumers everywhere could easily use, instead of being focused on if consumers are going to be able to use them at all. The goal wasn't to control the interconnect, it was to give it away so the entire market would benefit and grow.
And that's really what we're talking about here with PhysX running exclusively on NVIDIA's CUDA. For a software developer that's building any product, including games, based on GPU acceleration through CUDA, they are automatically limiting their potential market. Even if NVIDIA gives all of the tools and tech to them to create their product, the whole deal is soured by their dependence on NVIDIA. Who wants their market to be smaller than it potentially should be? Why cut out ATI and Intel customers as potential buyers? What if NVIDIA loses market share? Software developers would absolutely rather be programming products for use in all parallel processing environments, be they NVIDIA, AMD, or Intel, and GPUs or multi-core CPUs.
OpenCL will swallow up CUDA software
The market has been pretty clear on what it's looking for, if you look at adoption rates. NVIDIA has generated plenty of press around its tech, but if you look at what's actually out there, there's only one title that really passes for a decent gaming title: Mirror's Edge. Anand Lal Shimpi just recently wrote a pretty comprehensive review of available CUDA/PhysX software, and the verdict was a big "meh".
But even if there was better stuff available, OpenCL (or possibly DX11 Compute) is the elephant in the corner. OpenCL is what software developers want, that's a fact, because it's hardware agnostic. C for CUDA holds no benefits over OpenCL, and since OpenCL can plug right into CUDA, isn't it pretty irrelevant then?* When OpenCL materializes, developers are going to be porting their CUDA software to it as fast as they can.
Where does that leave PhysX?
PhysX is like collatoral damage in this whole drama. NVIDIA is using PhysX as a pawn in their war with AMD by trying to use it to grow their own market share only through keeping it an exclusive technology. I think that's stunting the enormous future potential of the product itself, though, considering the market forces at work. NVIDIA should instead be pushing OpenCL like crazy, which will inevitably become a standard anyway, and grow the entire market (with their piece of the pie along with it). They'll never control the "parallel computing platform", so why waste PhysX trying?
NVIDIA should have taken a look at Intel's playbook on this one. Intel bought up Havok back in 2007, but left it to function as a viable business. It runs on all hardware, and was even spotted running on AMD GPU's via OpenCL. Havok is well-paid by developers for their engine and they undoubtedly have an exciting future ahead of them continuing to innovate in their space.
PhysX, on the other hand, is still free. NVIDIA gives it away, just like Ageia did, with the expectation that it will create demand for its products and generate profit that way. But what happens down the line when that strategy continues to fail? Will NVIDIA start asking developers for payment then? How do you think that bait and switch is going to go down?
NVIDIA should have turned PhysX into the de facto physics engine for the parallel computing revolution that's fully underway -- but as an autonomous, profitable, and viable business. I think physics is going to be a huge market force in the near future, and coupled with NVIDIA's expertise and interest in GPGPU and their relationships in the industry, PhysX could have been a cornerstone technology and key part of a massive industry paradigm shift. Instead, it's going end up a footnote, right next to CUDA.
* I think it's fair to say, though, that CUDA is irrelevant when OpenCL matures. NVIDIA has had some very cool design wins with CUDA, and there are early adopters in the developer community who were waiting for this technology and are absolutely embracing it now that it's here. So, looking at this from NVIDIA's perspective, CUDA can be seen as their way of pioneering the GPGPU space while OpenCL is being worked out. After all, they are part of the OpenCL consortium and are working in some capacity to bring that tech to the market. So, in the mean time and since they are so far ahead of anyone else in this space, why not put CUDA out on the market and use it as a competitive advantage while they can?