Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

How to use kaolin in CT? #850

Open
Monsoon-k opened this issue Jan 1, 2025 · 3 comments
Open

How to use kaolin in CT? #850

Monsoon-k opened this issue Jan 1, 2025 · 3 comments

Comments

@Monsoon-k
Copy link

Such amazing work! You mentioned that kaolin physics works well in CT Scanns such as Heterogenous Skull/Brain, would you kindly give a tutorial of that? I appreciate your help!

@shumash
Copy link
Collaborator

shumash commented Feb 23, 2025

We would love to support this use case. For a visual example showing that it's possible, see Simplicits paper website, which uses the same physics algorithm and implementation as Kaolin.

@itsvismay please provide some pointers to get started.

@itsvismay
Copy link
Contributor

Hi @Monsoon-k, for the CT simulations in our paper, I segmented (or thresholded) organs using their hounsfield density values.

For data I used scans from the visible human dataset. For organ segmentation I used either Paraview or Slicer 3D to strip the skull, brain or bladder. Here's an example of stripping a skull in Slicer (https://www.youtube.com/watch?v=GKo7TyboLsg).

I will add a video tutorial for simulating organs to my Todo list.

@itsvismay
Copy link
Contributor

For more context here are the steps to simulate a skull/brain:

  1. Find CT scan data from an online dataset. I used the visible human data.
  2. Strip the skull from the brain in Slicer3D. You can find a tutorial online and save out a point cloud or even a high-res surface mesh for the separated skull and the brain.
    (One thing to note is that if pieces of stiff material are highly interspersed with soft material, then Simplicits will have trouble separating the deformations and it will cause locking. So make sure the soft brain region is unified and distinct from the stiff skull)
  3. You can load these objects into simplicits as shown in the simplicits_low_level_api.ipynb. Sample various points and assign the appropriate YM to each sample point. Training and simulation should work the same as it does now.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants