**Data:** a 3D volume Ω with density field *ρ*(**v**), and the desired number of vertices |

**Result:** an adaptive sampling **V** of Ω |

Initialize particle locations **V**; |

**While *** stopping condition not satisfied ***do** |

Update the - tree [22] data structure for the current sampling locations **V**; |

**for *** each particle *** do** |

Obtain particle ’s -nearest neighbors within five standard deviations (5*σ*) from - tree; |

**for** each particle ** do** |

Compute by (2); |

Compute by (4); |

**end** |

Compute the total force by (5); |

**end** |

Compute the total energy by (3); |

Run L-BFGS algorithm with and , to update the particle locations **V**; |

Project **V** onto the 3D volume surface, if **V** jumps out of the volume boundary; |

**end ** |