I guess it kinda depends what result you are looking for. trying to achieve collisions between two meshes is very daunting and there are many complex checks that need to be performed (Which I’m afraid I do not know how to do). An easier route would be to use Axis Aligned Bounding Boxes (or just AABB) and spheres to define complex object files. this example is written in another programming language but pretty clearly describes what needs to be done. This is all assuming that you know the dimensions and positions of your .obj shapes. Here’s code for a simple AABB test where object1 is movable and object2 is immovable.

```
void update(){
float left = object1.position.x - object1.dimensions.x/2;
float right = object1.position.x + object1.dimensions.x/2;
float top = object1.position.y - object1.dimensions.y/2;
float bottom = object1.position.y + object1.dimensions.y/2;
float front = object1.position.z - object1.dimensions.z/2;
float back = object1.position.z + object1.dimensions.z/2;
float boxLeft = object2.position.x - object2.dimensions.x/2;
float boxRight = object2.position.x + object2.dimensions.x/2;
float boxTop = object2.position.y - object2.dimensions.y/2;
float boxBottom = object2.position.y + object2.dimensions.y/2;
float boxFront = object2.position.z - object2.dimensions.z/2;
float boxBack = object2.position.z + object2.dimensions.z/2;
float boxLeftOverlap = right - boxLeft;
float boxRightOverlap = boxRight - left;
float boxTopOverlap = bottom - boxTop;
float boxBottomOverlap = boxBottom - top;
float boxFrontOverlap = back - boxFront;
float boxBackOverlap = boxBack - front;
if (((left > boxLeft && left < boxRight || (right > boxLeft && right < boxRight)) && ((top > boxTop &&top < boxBottom) || (bottom > boxTop && bottom < boxBottom)) && ((front > boxFront && front < boxBack) || (back > boxFront && back < boxBack)))){
//this is where collision = true
float xOverlap = max(min(boxLeftOverlap, boxRightOverlap), 0);
float yOverlap = max(min(boxTopOverlap, boxBottomOverlap), 0);
float zOverlap = max(min(boxFrontOverlap, boxBackOverlap), 0);
if (xOverlap < yOverlap && xOverlap < zOverlap){
if (boxLeftOverlap < boxRightOverlap){
object1.position.x = boxLeft - object1.dimensions.x/2;
} else {
object1.position.x = boxRight + object1.dimensions.x/2;
}
}
else if (yOverlap < xOverlap && yOverlap < zOverlap){
if (boxTopOverlap < boxBottomOverlap){
object1.position.y = boxTop - object1.dimensions.y/2;
} else {
object1.position.y = boxBottom + object1.dimensions.y/2;
}
}
else if (zOverlap < xOverlap && zOverlap < yOverlap){
if (boxFrontOverlap < boxBackOverlap){
object1.position.z = boxFront - object1.dimensions.x/2;
} else {
object1.position.z = boxBack + object1.dimensions.x/2;
}
}
}
}
```

I hope at least some of this helps and points you in the right direction!