cars.forEach((car) => {
        //Draw car

        //Draw Wheels
        fill("black");
        strokeWeight(0);
        ellipse(
          car.x + (carDi / 2) * cos(car.angle + PI / 4),
          car.y + (carDi / 2) * sin(car.angle + PI / 4),
          carDi / 2.5
        );
        ellipse(
          car.x + (carDi / 2) * cos(car.angle - PI / 4),
          car.y + (carDi / 2) * sin(car.angle - PI / 4),
          carDi / 2.5
        );
        ellipse(
          car.x + (carDi / 2) * cos(car.angle + 0.75 * PI),
          car.y + (carDi / 2) * sin(car.angle + 0.75 * PI),
          carDi / 2.5
        );
        ellipse(
          car.x + (carDi / 2) * cos(car.angle - 0.75 * PI),
          car.y + (carDi / 2) * sin(car.angle - 0.75 * PI),
          carDi / 2.5
        );

        //Draw Car Base
        fill("blue");
        stroke("black");
        strokeWeight(1);
        ellipse(car.x, car.y, carDi);

        //Draw Eye
        fill("yellow");
        ellipse(car.eyeX, car.eyeY, carDi / 3);

        // Car Behavior

        if (car.dead == false && car.ptInObst(car.x, car.y) == false) { // Make sure car is alive
          car.updatePos();

          //Make Decision

          //Get obstacle detection distances
          let inputs = tf.tensor2d([car.getCollisDist()]);

          // Predict the value
          let decArr = car.model.predict(inputs).dataSync();

          //Adjust angle and velocity based on outputs
          car.v += 0.1 * decArr[0]; // Accelerate
          car.v -= 0.2 * decArr[1]; // Brake
          car.angle -= 0.1 * decArr[2]; // Turn Left
          car.angle += 0.1 * decArr[3]; // Turn Right
        } else{
          car.dead = true // Kill the car if it is in obstacle
        }
      });