Skip to content

Commit ca69ea9

Browse files
committed
[doc] Add a README with doc and description
1 parent 02189c0 commit ca69ea9

File tree

1 file changed

+59
-3
lines changed

1 file changed

+59
-3
lines changed

README.md

Lines changed: 59 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,62 @@
1+
# Collision Algorithm for Needle Insertion - SOFA Plugin
2+
3+
[![Support](https://img.shields.io/badge/support-on_GitHub_Discussions-blue.svg)](https://github.com/sofa-framework/sofa/discussions/)
4+
[![Discord](https://img.shields.io/badge/chat-on_Discord-darkred.svg)](https://discord.gg/G63t3a8Ra6)
5+
[![Contact](https://img.shields.io/badge/contact-on_website-orange.svg)](https://infinytech3d.com/)
6+
[![Support us](https://img.shields.io/badge/support_us-on_Github_Sponsor-purple.svg)](https://github.com/sponsors/InfinyTech3D)
7+
18
## Description
2-
This is a SOFA plugin (https://github.com/sofa-framework/sofa) that provides a customized collision pipeline, specifically designed to support needle insertion simulations.
3-
Works in conjunction with https://github.com/InfinyTech3D/ConstraintGeometry.
9+
This SOFA plugin (https://github.com/sofa-framework/sofa) provides a customized collision
10+
pipeline, designed specifically for needle insertion simulations.
11+
12+
When used together with SOFA haptic device plugins, the system offers tactile feedback
13+
for puncture resistance, release and friction during insertion and retraction.
14+
15+
This plugin has also been integrated in Unity via the [`SOFAUnity`](https://github.com/InfinyTech3D/SofaUnity)
16+
plugin by InfinyTech3D for an enhanced simulation experience. Contact us for more information!
17+
18+
## Features
19+
20+
- Proximity detection between the needle and tissue mesh primitives
21+
- Needle simulation phases: puncture, insertion, retraction
22+
- Constraint-based needle simulation during the 3 phases
23+
- Support for haptic feedback such as resistance during puncture and friction during insertion
24+
- Compatible with SOFA-Unity integration for real-time interactive applications
25+
26+
## Installation and Setup
27+
28+
First review the official SOFA documentation for building and registering SOFA plugins
29+
https://sofa-framework.github.io/doc/plugins/build-a-plugin-from-sources/
30+
31+
### Build Steps
32+
33+
- Set up your `external_directories` directory (described in the SOFA documentation link above)
34+
- Clone this repository into your `external_directories` directory:
35+
- git clone https://github.com/InfinyTech3D/CollisionAlgorithm.git
36+
- Register the path to your local `CollisionAlgorithm` repository in the CMakeLists.txt file located inside your `external_directories` directory
37+
```sofa_add_subdirectory(plugin CollisionAlgorithm CollisionAlgorithm)```
38+
- Set `SOFA_EXTERNAL_DIRECTORIES` variable (preferably using CMake GUI) to point to your `external_directories` directory
39+
- Configure and generate the SOFA solution using CMake
40+
- Compile SOFA solution (the plugin will be compiled as well)
41+
42+
> [!IMPORTANT]
43+
> In order to use the plugin, make sure that you have also built the downstream
44+
[`ConstraintGeometry`](https://github.com/InfinyTech3D/ConstraintGeometry) plugin.
45+
46+
Supported SOFA version: v25.06 and above
47+
48+
## Architecture
49+
50+
- doc:
51+
- Documentation and screenshots of the examples
52+
- scenes:
53+
- Various simple demo scenes
54+
- src/CollisionAlgorithm:
55+
- source code of the insertion algorithm SOFA component and supporting collision pipeline classes
56+
- regression:
57+
- Files for automated regression testing in alignment with SOFA's testing framework
458

559
## Acknowledgments
6-
This project builds upon the original repository from [ICube Laboratory, University of Strasbourg](https://icube.unistra.fr/en/) and extends it with a needle insertion algorithm and additional functionality.
60+
This project builds upon the original repository from
61+
[ICube Laboratory, University of Strasbourg](https://icube.unistra.fr/en/)
62+
and extends it with a needle insertion algorithm and additional functionality.

0 commit comments

Comments
 (0)