Thursday, March 5th 2015

NVIDIA Frees PhysX Source Code

After Epic's Unreal Engine 4 and Unity 5 game engines went "free,"with their source-codes put up by their makes for anyone to inspect freely, NVIDIA decided to join the bandwagon of showering game developers with technical empowerment, by putting up the entire source-code of PhysX 3.3.3, including its cloth and destruction physics code, on GitHub. The move to put up free-code of PhysX appears to be linked to the liberation of Unreal Engine 4 code.

NVIDIA PhysX is the principal physics component of Unreal-driven game titles for several years now. There's a catch, though. NVIDIA is only freeing CPU-based implementation of PhysX, and not its GPU-accelerated one, which leverages NVIDIA's proprietary CUDA GPU compute technology. There should still be plenty for game devs and students in the field, to chew on. In another interesting development, the PhysX SDK has been expanded from its traditionally Windows roots to cover more platforms, namely OS X, Linux, and Android. Find instructions on how to get your hands on the code, at the source link. Source: NVIDIA
Add your own comment

56 Comments on NVIDIA Frees PhysX Source Code

#1
btarunr
Editor & Senior Moderator
Many Thanks to RaCoon for the tip.
Posted on Reply
#2
BiggieShady
Who would have thought. I wonder if AMD can make a phsyx build that you can use with all older games.
Posted on Reply
#3
newtekie1
Semi-Retired Folder
BiggieShady, post: 3249145, member: 102776"
Who would have thought. I wonder if AMD can make a phsyx build that you can use with all older games.
It is the CPU code, you could always use that with AMD cards.
Posted on Reply
#4
BiggieShady
newtekie1, post: 3249146, member: 20670"
It is the CPU code, you could always use that with AMD cards.
So it says in the OP I didn't read entirely ... it is little less newsworthy if read entirely
Posted on Reply
#5
btarunr
Editor & Senior Moderator
The operative term is "free source," not "open source." You can inspect the code, and learn how to code your project better, but not steal/modify the code. That's what's different between PhysX and Firefox now.
Posted on Reply
#6
db87
I would be nice if it get's some proper optimization. On the CPU it always ran on a single thread without SSE or such, just to make it slower than Nvidia videocards. Let's be honest they only brought Ageia Physics for marketing purposes...

I hope everthing will get more mature and unified with DirectX12, no more GameWorks bullshit and such.
Posted on Reply
#7
jabbadap
btarunr, post: 3249210, member: 43587"
The operative term is "free source," not "open source." You can inspect the code, and learn how to code your project better, but not steal/modify the code. That's what's different between PhysX and Firefox now.
Not steal, yes. But you can modify and upload your changes to github, nvidia may or may not accept it upstream, but you can use your modifications in your project and offer it for others.
Posted on Reply
#8
mroofie
db87, post: 3249231, member: 54920"
I would be nice if it get's some proper optimization. On the CPU it always ran on a single thread without SSE or such, just to make it slower than Nvidia videocards. Let's be honest they only brought Ageia Physics for marketing purposes...

I hope everthing will get more mature and unified with DirectX12, no more GameWorks bullshit and such.
marketing purposes??
Have you seen flex ?
GTFO :)
Posted on Reply
#9
TheGuruStud
I doubt nvidia will allow this to be used correctly. We already know that it can all be done on CPU and nvidia intentionally cripples the CPU only path.
Posted on Reply
#10
jabbadap
db87, post: 3249231, member: 54920"
I would be nice if it get's some proper optimization. On the CPU it always ran on a single thread without SSE or such, just to make it slower than Nvidia videocards. Let's be honest they only brought Ageia Physics for marketing purposes...

I hope everthing will get more mature and unified with DirectX12, no more GameWorks bullshit and such.
Afaik hardly so. And I think sse2 has been default since version 3, heck most of games that are using physx uses only cpu code path(all console games and some of the pc games too).
Posted on Reply
#11
qubit
Overclocked quantum bit
While full open sourcing of the PhysX code for CPU and GPU is really what we want, this move might finally be just enough to make it the de facto standard eventually.

How so? By developers studying the code, an open source API similar in concept to OpenGL could be written for both CPU and GPU (CUDA or otherwise) that would be useable by everyone. It would then be trivial to bundle it with games that use it.

The PhysX demos I've seen have been fantastic and really show what it can do, so this can't come soon enough.
Posted on Reply
#12
eddman
db87, post: 3249231, member: 54920"
On the CPU it always ran on a single thread without SSE or such, just to make it slower than Nvidia videocards.
TheGuruStud, post: 3249313, member: 42692"
We already know that it can all be done on CPU and nvidia intentionally cripples the CPU only path.
How about you research a bit before posting. Read the links jabbadap posted.

"We" don't know. You read some unsubstantiated gibberish somewhere and decided it was the absolute truth. Nvidia is trying to compete with havok, which is CPU based. Do you REALLY think they'd cripple physX on CPUs, when the majority of physX games are CPU based, and there is no GPU-acceleration on consoles?

Well, you don't need to, since it's simply not true.

P.S. Since this is the internet, I'd have to point out that I'm neutral, but I hate it when misinformation keeps being repeated.
Posted on Reply
#13
Constantine Yevseyev
db87, post: 3249231, member: 54920"
it always ran on a single thread without SSE or such
What?..
Posted on Reply
#14
MxPhenom 216
Corsair Fanboy
What is Nvidia's reason for not making it open source? I feel like they are on their way to making it open source at this point.
Posted on Reply
#15
HumanSmoke
Constantine Yevseyev, post: 3249414, member: 111465"
What?..
LOL, obviously doesn't keep up with developments. MT has been available since 3.0 in 2011.


For those interested, the original NovodeX/PhysX coder, Pierre Terdiman, has a site where some more interesting background can be found ( use of AVX for the CPU functionality of PhysX etc)
Posted on Reply
#16
OneMoar
There is Always Moar
with a source release its now possible to port PhysX to OpenCL meaning gpu acceleration on amd
Posted on Reply
#17
TheGuruStud
eddman, post: 3249409, member: 103704"
How about you research a bit before posting. Read the links jabbadap posted.

"We" don't know. You read some unsubstantiated gibberish somewhere and decided it was the absolute truth. Nvidia is trying to compete with havok, which is CPU based. Do you REALLY think they'd cripple physX on CPUs, when the majority of physX games are CPU based, and there is no GPU-acceleration on consoles?

Well, you don't need to, since it's simply not true.

P.S. Since this is the internet, I'd have to point out that I'm neutral, but I hate it when misinformation keeps being repeated.
http://semiaccurate.com/2010/07/07/nvidia-purposefully-hobbles-physx-cpu/

*drops mic* :laugh:

Your theory is blown to shit.
Posted on Reply
#18
lZKoce
I think it's a good move. I've always liked PhysX, I've liked nVidia as well, so I am biased. In my particular case I only see PhysX in Warframe, which I used play of lately and Blacklight Retribution and may be Trine. I'd be happy to see wider adoption of it.
Posted on Reply
#19
ZoneDymo
lZKoce, post: 3249527, member: 102554"
I think it's a good move. I've always liked PhysX, I've liked nVidia as well, so I am biased. In my particular case I only see PhysX in Warframe, which I used play of lately and Blacklight Retribution and may be Trine. I'd be happy to see wider adoption of it.
This is just about making people able to read the code, not suddenly use it etc.
See it has the hood of a car being locked shut for all these years and now being openable for those who want to take a peak at the engine.
They are not allowed to take the engine out or anything, just watch, dont touch.
Posted on Reply
#20
Recus
btarunr, post: 3249210, member: 43587"
The operative term is "free source," not "open source." You can inspect the code, and learn how to code your project better, but not steal/modify the code. That's what's different between PhysX and Firefox now.
But now Physx is x100 more open than Mantle.

ZoneDymo, post: 3249549, member: 66089"
This is just about making people able to read the code, not suddenly use it etc.
See it has the hood of a car being locked shut for all these years and now being openable for those who want to take a peak at the engine.
They are not allowed to take the engine out or anything, just watch, dont touch.
“This means that the entire UE4 community can now view and modify this PhysX code alongside the complete C++ source code for UE4. Modifications can be shared with NVIDIA who will review and incorporate accepted submissions into their main PhysX branch, which then flows into future versions of UE4.”
TheGuruStud, post: 3249510, member: 42692"
http://semiaccurate.com/2010/07/07/nvidia-purposefully-hobbles-physx-cpu/

*drops mic* :laugh:

Your theory is blown to shit.
“Today we’re excited to announce an expansion of that partnership with NVIDIA providing all UE4 developers with not just binary but C++ source access to the CPU-based implementation of PhysX 3.3.3, including the clothing and destruction libraries, through Epic’s Unreal Engine repository on GitHub.”
Posted on Reply
#21
Relayer
MxPhenom 216, post: 3249420, member: 87790"
What is Nvidia's reason for not making it open source? I feel like they are on their way to making it open source at this point.
I think they are just dangling a carrot to get devs to sign up for the Gameworks program. Seeing as how you have to do that to get the code.
Posted on Reply
#22
RejZoR
Who cares? It's not like there aren't countless CPU physics engines... If they released GPU part I'd be impressed, but this way, meeeh...
Posted on Reply
#23
RCoon
Gaming Moderator
Recus, post: 3249559, member: 96809"
But now Physx is x100 more open than Mantle.
Well, the new OpenGL Next from Kronos is a standardised version of Mantle, and is an open spec.
Posted on Reply
#25
eddman
TheGuruStud, post: 3249510, member: 42692"
http://semiaccurate.com/2010/07/07/nvidia-purposefully-hobbles-physx-cpu/

*drops mic* :laugh:

Your theory is blown to shit.
Are you being ignorant on purpose? Charlie from semiaccurate is a sensationalist writer and the source that he's basing his "article" on has already been explained and debunked. Did you even read jabbadap's links?

Perhaps I'd have to link to one of them again: http://www.codercorner.com/blog/?p=1129

It's written by one of the creators of physX, and everything is explained, but I'm sure you'd rather believe charlie, since it fits your "it must be a conspiracy" view.

Here is an excerpt from the end of the article:
there was no crippling. The old version is just that: old. The code I wrote 10 years ago, as fast as it appeared to be at the time, is not a match for the code I write today. Opcode 2 (which will be included in PhysX 3.4) is several times faster than Opcode 1.3, even though that collision library is famous for its performance. It’s the same for PhysX. PhysX 2 was faster than NovodeX/PhysX 1. PhysX 3 is faster than PhysX 2. We learn new tricks. We find new ideas. We simply get more time to try more options and select the best one.

As the guy in the article says, PhysX3 is so fast that it changed his mind about the whole GPU Physics thing. Does that sound like we’re trying to promote GPU Physics by crippling PhysX3? Of course not. And in the same way we did not try to promote Ageia Physics by crippling PhysX2. We were and we are a proud bunch of engineers who love to make things go fast - software or hardware.
Anyway, physx 2.x is gone and physx 3.x doesn't have any of the inherent deficiencies of the old code and is much faster. Isn't that odd? nvidia is crippling CPU physx by making it faster. Now that's something.

lZKoce, post: 3249527, member: 102554"
I'd be happy to see wider adoption of it.
http://physxinfo.com/index.php?p=gam&f=all
Posted on Reply
Add your own comment