ofxMSAPhysics particles don't colide in model loaded with assimp loader

What is the proper way to load a 3d model in order to have collision with particles generated with MSAPhysics?
I am using the MSAPhysics example but without success until now.

Here is what I am doing:

I load the model of a cube and I expect that the particles will colide to it and not pass through it.

and here is my code:

  
//--------------------------------------------------------------  
void testApp::setup(){  
	ofBackground(255, 255, 255);  
	ofSetVerticalSync(true);  
	ofSetFrameRate(60);  
	  
	ballImage.loadImage("ball.png");  
	  
	width = ofGetWidth();  
	height = ofGetHeight();  
	  
	//	physics.verbose = true;			// dump activity to log  
	physics.setGravity(ofVec3f(0, GRAVITY, 0));  
	  
	// set world dimensions, not essential, but speeds up collision  
	physics.setWorldSize(ofVec3f(-width/2, -height, -width/2), ofVec3f(width/2, height, width/2));  
	physics.setSectorCount(SECTOR_COUNT);  
    physics.setDrag(0.97f);  
	physics.setDrag(1);		// FIXTHIS  
	physics.enableCollision();  
	  
	initScene();  
	  
	model.loadModel("cubo.dae", true);  
    model.setPosition(ofGetWidth() * 0.5, (float)ofGetHeight() * 0.75 , 0);  
    //model.setLoopStateForAllAnimations(OF_LOOP_NORMAL);  
    //model.playAllAnimations();   
	  
	// setup lighting  
	GLfloat mat_shininess[] = { 50.0 };  
	GLfloat mat_specular[] = { 1.0, 1.0, 1.0, 1.0 };  
	GLfloat light_position[] = { 0, height/2, 0.0, 0.0 };  
	glShadeModel(GL_SMOOTH);  
	  
	glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, mat_specular);  
	glMaterialfv(GL_FRONT_AND_BACK, GL_SHININESS, mat_shininess);  
	glLightfv(GL_LIGHT0, GL_POSITION, light_position);  
	  
	glEnable(GL_COLOR_MATERIAL);  
	glEnable(GL_LIGHT0);  
	  
	// enable back-face culling (so we can see through the walls)  
	glCullFace(GL_BACK);  
	glEnable(GL_CULL_FACE);  
}  

  
//--------------------------------------------------------------  
void testApp::draw() {  
	if(doRender) {  
		  
		ofEnableAlphaBlending();  
		glEnable(GL_DEPTH_TEST);  
		  
		glPushMatrix();  
		  
		glTranslatef(width/2, 0, -width / 3);		// center scene  
		static float rot = 0;  
		glRotatef(rot, 0, 1, 0);			// rotate scene  
		rot += rotSpeed;						// slowly increase rotation (to get a good 3D view)  
		  
		if(forceTimer) {  
			float translateMax = forceTimer;  
			glTranslatef(ofRandom(-translateMax, translateMax), ofRandom(-translateMax, translateMax), ofRandom(-translateMax, translateMax));  
			forceTimer--;  
		}  
		  
		  
		glDisable(GL_LIGHTING);  
		glBegin(GL_QUADS);  
		// draw right wall  
		glColor3f(.9, 0.9, 0.9);		glVertex3f(width/2, height+1, width/2);  
		glColor3f(1, 1, 1);				glVertex3f(width/2, -height, width/2);  
		glColor3f(0.95, 0.95, 0.95);	glVertex3f(width/2, -height, -width/2);  
		glColor3f(.85, 0.85, 0.85);		glVertex3f(width/2, height+1, -width/2);  
		  
		// back wall  
		glColor3f(.9, 0.9, 0.9);		glVertex3f(width/2, height+1, -width/2);  
		glColor3f(1, 1, 1);				glVertex3f(width/2, -height, -width/2);  
		glColor3f(0.95, 0.95, 0.95);	glVertex3f(-width/2, -height, -width/2);  
		glColor3f(.85, 0.85, 0.85);		glVertex3f(-width/2, height+1, -width/2);  
		  
		// left wall  
		glColor3f(.9, 0.9, 0.9);		glVertex3f(-width/2, height+1, -width/2);  
		glColor3f(1, 1, 1);				glVertex3f(-width/2, -height, -width/2);  
		glColor3f(0.95, 0.95, 0.95);	glVertex3f(-width/2, -height, width/2);  
		glColor3f(.85, 0.85, 0.85);		glVertex3f(-width/2, height+1, width/2);  
		  
		// front wall  
		glColor3f(0.95, 0.95, 0.95);	glVertex3f(width/2, -height, width/2);  
		glColor3f(.85, 0.85, 0.85);		glVertex3f(width/2, height+1, width/2);  
		glColor3f(.9, 0.9, 0.9);		glVertex3f(-width/2, height+1, width/2);  
		glColor3f(1, 1, 1);				glVertex3f(-width/2, -height, width/2);  
		  
		// floor  
		glColor3f(.8, 0.8, 0.8);  
		glVertex3f(width/2, height+1, width/2);  
		glVertex3f(width/2, height+1, -width/2);  
		glVertex3f(-width/2, height+1, -width/2);  
		glVertex3f(-width/2, height+1, width/2);  
		glEnd();  
		  
  
		  /* model start*/  
    ofPushMatrix();  
    //ofTranslate(model.getPosition().x+100, model.getPosition().y, 0);  
   // ofRotate(-mouseX, 0, 1, 0);  
   // ofTranslate(-model.getPosition().x, -model.getPosition().y, 0);  
    model.drawFaces();  
    ofPopMatrix();  
  
    //glPushAttrib(GL_ALL_ATTRIB_BITS);  
    //glPushClientAttrib(GL_CLIENT_ALL_ATTRIB_BITS);  
    //glEnable(GL_NORMALIZE);  
  
    ofPushMatrix();  
    //ofTranslate(model.getPosition().x-300, model.getPosition().y, 0);  
    //ofRotate(-mouseX, 0, 1, 0);  
    //ofTranslate(-model.getPosition().x, -model.getPosition().y, 0);  
      
    ofxAssimpMeshHelper & meshHelper = model.getMeshHelper(0);  
      
    ofMultMatrix(model.getModelMatrix());  
    ofMultMatrix(meshHelper.matrix);  
      
    ofMaterial & material = meshHelper.material;  
    ofTexture & texture = meshHelper.texture;  
      
    texture.bind();  
    material.begin();  
    mesh.drawWireframe();  
    material.end();  
    texture.unbind();  
	ofPopMatrix();  
  
	//glPopAttrib();   
  
	/*model end*/  
  
	  
//		glEnable(GL_LIGHTING);  
		  
		// draw springs  
		glColor4f(0.5, 0.5, 0.5, 0.5);  
		for(int i=0; i<physics.numberOfSprings(); i++) {  
			msa::physics::Spring3D *spring = (msa::physics::Spring3D *) physics.getSpring(i);  
			msa::physics::Particle3D *a = spring->getOneEnd();  
			msa::physics::Particle3D *b = spring->getTheOtherEnd();  
			ofVec3f vec = b->getPosition() - a->getPosition();  
			float dist = vec.length();  
			float angle = acos( vec.z / dist ) * RAD_TO_DEG;  
			if(vec.z <= 0 ) angle = -angle;  
			float rx = -vec.y * vec.z;  
			float ry =  vec.x * vec.z;  
			  
			glPushMatrix();  
			glTranslatef(a->getPosition().x, a->getPosition().y, a->getPosition().z);  
			glRotatef(angle, rx, ry, 0.0);  
			float size  = ofMap(spring->getStrength(), SPRING_MIN_STRENGTH, SPRING_MAX_STRENGTH, SPRING_MIN_WIDTH, SPRING_MAX_WIDTH);  
			  
			glScalef(size, size, dist);  
			glTranslatef(0, 0, 0.5);  
            ofBox(1);  
			glPopMatrix();  
		}  
		  
		  
		// draw particles  
		glAlphaFunc(GL_GREATER, 0.5);  
		  
		ofEnableNormalizedTexCoords();  
		ballImage.getTextureReference().bind();  
		for(int i=0; i<physics.numberOfParticles(); i++) {  
			msa::physics::Particle3D *p = physics.getParticle(i);  
			if(p->isFixed()) glColor4f(1, 0, 0, 1);  
			else glColor4f(1, 1, 1, 1);  
  
			glEnable(GL_ALPHA_TEST);  
			  
			// draw ball  
			glPushMatrix();  
			glTranslatef(p->getPosition().x, p->getPosition().y, p->getPosition().z);  
			glRotatef(180-rot, 0, 1, 0);  
  
			glBegin(GL_QUADS);  
  
			  
  
			glTexCoord2f(0, 0); glVertex2f(-p->getRadius(), -p->getRadius());  
			glTexCoord2f(1, 0); glVertex2f(p->getRadius(), -p->getRadius());  
			glTexCoord2f(1, 1); glVertex2f(p->getRadius(), p->getRadius());  
			glTexCoord2f(0, 1); glVertex2f(-p->getRadius(), p->getRadius());  
			glEnd();  
  
			//ofSetColor(255);  
			glPopMatrix();  
			  
			glDisable(GL_ALPHA_TEST);  
			  
			float alpha = ofMap(p->getPosition().y, -height * 1.5, height, 0, 1);  
			if(alpha>0) {  
				glPushMatrix();  
				glTranslatef(p->getPosition().x, height, p->getPosition().z);  
				glRotatef(-90, 1, 0, 0);  
				glColor4f(0, 0, 0, alpha * alpha * alpha * alpha);  
//				ofCircle(0, 0, p->getRadius());  
				float r = p->getRadius() * alpha;  
				glBegin(GL_QUADS);  
				glTexCoord2f(0, 0); glVertex2f(-r, -r);  
				glTexCoord2f(1, 0); glVertex2f(r, -r);  
				glTexCoord2f(1, 1); glVertex2f(r, r);  
				glTexCoord2f(0, 1); glVertex2f(-r, r);  
				glEnd();  
				glPopMatrix();  
			}  
			  
		}  
		ballImage.getTextureReference().unbind();  
		ofDisableNormalizedTexCoords();  
		  
		  
		glPopMatrix();  
	}  
	  
	glDisable(GL_BLEND);  
	glDisable(GL_DEPTH_TEST);  
	glDisable(GL_LIGHTING);  
	glColor4f(0, 0, 0, 1);  
	ofDrawBitmapString(" FPS: " + ofToString(ofGetFrameRate(), 2)  
                + " | Number of particles: " + ofToString(physics.numberOfParticles(), 2)  
                + " | Number of springs: " + ofToString(physics.numberOfSprings(), 2)  
                + " | Mouse Mass: " + ofToString(mouseNode.getMass(), 2)  
                + "\nLook at source code keyPressed to see keyboard shortcuts"  
			   , 20, 15);  
	  
	  
	  
	  
}  
  

Thanks!!