MSPhysics 1.0.3 (16 October 2017)
-
@kaas said:
Tried a bowl like Solo suggested. Marbles are falling though the bowl. So tried some boxes. Had to scale everything x10 or the boxes would stick through the bowl. I guess I need to tweak some settings.
Yeah, tiny objects are no good for newton. Another thing is I'll add the continuous collision mode feature, where objects won't fly through at fast speeds.
-
What are the chances of a mac version?
-
@otb designworks said:
What are the chances of a mac version?
The chances of a Mac version is like the chances of snow here in Salem Oregon - 3%
As you noticed this plugin requires AMS Library which is fully dependent on the Windows API. The mac version will be created, but it will lack a lot of features from the Windows version. -
Too bad, but thanks for the explanation of why.
-
@anton_s said:
@otb designworks said:
What are the chances of a mac version?
The chances of a Mac version is like the chances of snow here in Salem Oregon - 3%
As you noticed this plugin requires AMS Library which is fully dependent on the Windows API. The mac version will be created, but it will lack a lot of features from the Windows version.What things do you need to do?
-
-
-
-
Very Nice ruby.
But I wanted reference guide.(Ex: pdf file)Thank you so much!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
Thank you so much.
-
@kcs05 said:
But I wanted reference guide.(Ex: pdf file)
The reference will be available on version 1.0.0 - after all things are done on the list
-
Take your time. You are building something wonderful.
If you need help let us know.
-
That is a pretty darn excellent work, all the starting features are right up my alley and I did at least attempt to add them to my custom SketchyPhysics build.
Can you talk a little more about the new physics engine, how extensive are it's features?
- can you do custom friction, bounce and stiffness per entity
- perhaps even collision accuracy per entity
- can collision groups be defined (so some entities will never interact with others)
- is there any chance to add entities during the simulation (so a distanced area would not be included at the start but then add as you move closer)
- and by that extent can a partial simulation be done, say only the selected items are considered and nothing else (that way you could quickly go in and out of testing a small item without everything in the model interfering)
-
Hello Mister K,
it's nice to see you here@mister k said:
That is a pretty darn excellent work, all the starting features are right up my alley and I did at least attempt to add them to my custom SketchyPhysics build.
Thank you, I tried my best.
@mister k said:
Can you talk a little more about the new physics engine, how extensive are it's features?
MSPhysics uses same physics engine that SketchyPhysics used - NewtonDynamics. SketchyPhysics uses a custom build of Newton version 1 or 2, I'm not sure which one, meanwhile MSPhysics uses Newton 3.12 which is the latest build available. Newton 3.x.x is far more advanced than its prior versions. Newton 3 allows you to add friction, restitution (bounce coefficients), contact points, contact forces, mass, center of mass, inertia forces, and more. The soft bodies feature of Newton is not yet complete though, but I'm positive it will get finished while I integrate the current features of Newton.
To make sure we don't miss any features of Newton I decided to import all of its functions and write all wrap-up functionality in Ruby, such as custom jonts. I used Ruby FFI to import all Newton functions.
@mister k said:
-can you do custom friction, bounce and stiffness per entity
Yes, you can! In fact I already integrated it into the Body class. You might want to see documentation: MSPhysics::BodyContext, its huge!
@mister k said:
- perhaps even collision accuracy per entity
You mean contact body, point, normal, and speed? Yes, each body has an onTouch event which yields these parameters.
@mister k said:
- can collision groups be defined (so some entities will never interact with others)
This is absolutely plausible. I will add that feature.
@mister k said:
- is there any chance to add entities during the simulation (so a distanced area would not be included at the start but then add as you move closer)
Of course, I had that in mind when scripting. You not only able to add bodies while simulation, but your also capable to destroy them. The script handles this stuff properly, so no more crashes.
@mister k said:
- and by that extent can a partial simulation be done, say only the selected items are considered and nothing else (that way you could quickly go in and out of testing a small item without everything in the model interfering)
I was thinking about that. +1 to the TODO list.
The current version has a good body API. All I need is to create webdialogs to record body scripts. BTW, the error handlers will be much better now. Errors will cause simulation to terminate properly.
Another thing is that MSPhysics bodies have true center of mass. Oh yeah, it doesn't modify body's origin like SP did. All operations are fully undo-able. Clossing SketchUp after play and reset will not ask you whether to save anything (unless you didn't save before playing) because all movements are undone properly.
And yeah, its nice to meet you here
Anton -
Yabba-Dabba Do! It looks great so far. But if you're coding this all yourself it seems like it would take ages to get it all done...which is why Sketchyphysics was incomplete.
-
Don't worry Fred, I gots this.
Summer break is coming up, which means a lot of freetime unless I'm forced to get a job .
I'll try to complete the main features myself and then developers could work on new features and improve things here and there. -
Actually by stiffness I mean defining how much entities will resist intersection, not sure what the technical term is for that. So you could make items act as if they were soft/stiff without demand for full on deformation.
And by collision accuracy I meant just the extent of the calculation, so entities defined as less important would require the lowest amount of processing.
I know this is in part available through the number of cycles physics will do before updating entity location, but it would be nice if something similar could be defined on particular groups of entities.Also did you consider crossing over your scripting part with already available Ruby scripting plugins? It seems like something that would save plenty of time with that interface, although I don't know which specific plugin would work best, perhaps some of the other forum goers could pitch in with that.
-
@mister k said:
Actually by stiffness I mean defining how much entities will resist intersection, not sure what the technical term is for that. So you could make items act as if they were soft/stiff without demand for full on deformation.
Body.#set_softness(0.01 - 1.0)
A softness of 0.0 makes body act more like a metal ball i.e the momentum is transferred pretty well.
A softness of 1.0 makes body act more like a soft ball i.e the momentum is barely transferred to the colliding body.
Is that what you were asking?@mister k said:
And by collision accuracy I meant just the extent of the calculation, so entities defined as less important would require the lowest amount of processing.
Newton has a feature called auto-sleep. In interactive solver model, the bodies that don't need any further processing go to sleep mode.
You may also freeze the body or enable/disable the body, which temporarily adds/removes body to/from simulation processing.
As mentioned of interactive solver, Newton has exact and interactive solver models. Interactive works much faster, but less accurate.
Exact works slower, but more accurate.However, you can't assign exact/interactive solver model to a particular body. The solver model affects the calculation of all bodies at once.
I think for gaming purposes it would be best to enable/disable body. Newton has the islands feature as well. I'm not sure what it does though. Maybe it does exactly what your asking: enable/disable particular areas of simulations processing.
Meantime the solver model can be controlled via Menu -> Plugins -> MSPhysics -> Simulation -> Solve Model -> [Option]
@mister k said:
Also did you consider crossing over your scripting part with already available Ruby scripting plugins? It seems like something that would save plenty of time with that interface, although I don't know which specific plugin would work best, perhaps some of the other forum goers could pitch in with that.
Newton has custom joints written in C++. All I have to do is convert it to Ruby and add some ticks to make it more Ruby.
I am aiming to use Ruby 3D sounds library, though. I'm not planning to write my own lol.
-
wonderfull! thank you!
i was just looking for something like SketchyPhysics that worked with Sketchup 2014
i have just one question: does the speed of objects falling/moving depend on CPU/GPU power?
cause if i remember correctly, in SketchyPhysics objects seemed to fall/move fasterkeep up the good work, cant wait for the final version
-
@jonfar said:
i have just one question: does the speed of objects falling/moving depend on CPU/GPU power?
cause if i remember correctly, in SketchyPhysics objects seemed to fall/move fasterWhile running simulation go to (Menu) Plugins -> MSPhysics -> Simulation -> Speed -> Double
This will increase speed by a factor of two (Note that accuracy will become very bad).
Advertisement