Code covered by the BSD License  

Highlights from
dvcRender

image thumbnail
from dvcRender by Binh Nguyen
A physical simulation testbed in Matlab. User friendly OpenGL renderer in Matlab

testBullet.m
NET.addAssembly( 'd:\Work\dvcRender\dvcRender\Assembly\dotNetWrapper.dll');

import Bullet.dotNetWrapper.*;
import Bullet.dotNetWrapper.LinearMath.*;
%% Create BulletSDK
bulletSDK = BulletSDK();
%% Create DynamicsWorld
w = bulletSDK.CreateDynamicsWorld();
gr = Vector3(0,-10,0);
w.SetGravity(gr);

%% Create shapes
box = bulletSDK.CreateSphere(1);
box.SetMargin(0);

box2 = bulletSDK.CreateBox(50,1,50);
box2.SetMargin(0);
%% Create bodies
b = bulletSDK.CreateRigidBody(1,box);
b.SetPosition(0,2,0);
b.SetRotation(0,0,0);
lin1 = Vector3(0,-10,0);
b.SetLinearVel(lin1);

b2 = bulletSDK.CreateRigidBody(0,box2);
b2.SetPosition(0.0, -1, 0.0);
b2.SetRotation(0.0, 0.0, 0.0);

w.AddRigidBody(b);
w.AddRigidBody(b2);

%% Run simulation

pos = zeros(100,3);
vel = zeros(100,3);
d   = zeros(100,1);
for i=1:100
    w.Step(0.01);
    
    p1 = b.GetPosition();
    pos(i,:) = [p1.X p1.Y p1.Z];
    d(i) = p1.Y - 1;
    v1 = b.GetLinearVel();
    vel(i,:) = [v1.X v1.Y v1.Z];
    fprintf('vel(Y):[%f \t %f \t %f]\n',v1.X,v1.Y,v1.Z);    
end

plot(d);

Contact us at files@mathworks.com