 
     // BUBBLE-TEXT
     let bubble = SCNText(string: text, extrusionDepth: CGFloat(bubbleDepth))
+    if isNew, let visionImage = createVisionImage() {
+      let options = VisionCloudDetectorOptions()
+      options.maxResults = 1
+      vision.cloudLabelDetector(options: options).detect(in: visionImage) { labels, error in
+        guard error == nil, let labels = labels, !labels.isEmpty else { return }
+        bubble.string = labels[0].label
+      }
+    }
+
     var font = UIFont(name: "Futura", size: 0.15)
     font = font?.withTraits(traits: .traitBold)
     bubble.font = font

          "\(feature.label) \(String(format:"- %.2f", feature.confidence))" }
        .joined(separator: "\n")



      DispatchQueue.main.async {
        // Display Debug Text on screen
        var debugText:String = ""


  }

  private func createVisionImage() -> VisionImage? {
    guard let pixbuff : CVPixelBuffer? = sceneView.session.currentFrame?.capturedImage else {
      return nil
    }
    let ciImage = CIImage(cvPixelBuffer: pixbuff!)

    let context = CIContext.init(options: nil)

    guard let cgImage = context.createCGImage(ciImage, from: ciImage.extent) else {
      return nil
    }
    let rotatedImage =
      UIImage.init(cgImage: cgImage, scale: 1.0, orientation: .right)
    guard let rotatedCGImage = rotatedImage.cgImage else {
      return nil
    }
    let mirroredImage = UIImage.init(
      cgImage: rotatedCGImage, scale: 1.0, orientation: .leftMirrored)

    return VisionImage.init(image: mirroredImage)
  }

  func updateMLKit() {
    guard let visionImage = createVisionImage() else { return }
    let group = DispatchGroup()
    let options = VisionLabelDetectorOptions.init(confidenceThreshold: 0.7)
    group.enter()
