In this section, we demonstrate two approaches for inserting solvent molecules around a solute using a k-d tree for collision checking. Algorithm 1 shows a naive method that rebuilds the k-d tree for every solvent insertion, and Algorithm 2 illustrates a batching strategy. insertedCount ← insertedCount + |batchCoords| 34: end while 35: return systemCoords In Algorithm 2, multiple solvent molecules are attempted in each batch. The k-d tree is rebuilt once per batch rather than before every insertion. Early on, when the box is mostly empty, larger batches reduce overhead. As the box fills, the batch size shrinks and tree updates happen more frequently, helping manage higher collision rates.