static Model modelFor(Outcrop outcrop, World world) {
    
    final int mineral = mineralTypeFor(outcrop, world) ;
    final float rubble = rubbleFor(outcrop, world) ;
    outcrop.mineral = mineral ;
    final int size = outcrop.size, type = outcrop.type ;
    
    if (size == 1 && type != TYPE_DUNE) {
      return Habitat.SPIRE_MODELS[Rand.index(3)][2] ;
    }
    if (type == TYPE_DUNE) {
      return Habitat.DUNE_MODELS[Rand.index(3)] ;
    }
    if (mineral == 0 || size != 3) {
      int highID = Rand.yes() ? 1 : (3 - size) ;
      //int highID = (size == 3) ? 0 : 1 ;
      return Habitat.SPIRE_MODELS[Rand.index(3)][highID] ;
    }
    else {
      return Rand.num() < rubble ?
        Habitat.ROCK_LODE_MODELS[mineral - 1] :
        Habitat.MINERAL_MODELS[mineral - 1] ;
    }
  }