Skip to content

Commit

Permalink
Updates to readme and related files
Browse files Browse the repository at this point in the history
  • Loading branch information
Kevin-Mattheus-Moerman committed Aug 17, 2017
1 parent 2be25ca commit 16a3138
Show file tree
Hide file tree
Showing 9 changed files with 94 additions and 22 deletions.
21 changes: 21 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@

# Table of contents
- [Project Summary](#Summary)
- [Application highlights](#Application)
- [Installation](#Installation)
- [Getting started](#Start)
- [License](#License)
Expand All @@ -17,6 +18,26 @@ GIBBON (The Geometry and Image-Based Bioengineering add-On) is an open-source MA

<img src="docs/html/GIBBON_overview.jpg" href="https://gibboncode.org" alt="GIBBON overview" width="100%">

# Application highlights <a name="Application"></a>
- [Segmentation](#Segmentation)
- [Meshing](#Meshing)
- [Finite element analysis](#FEA)
- [Geometric tools](#Geometric)
- [Visualization](#Visualization)

### Segmentation <a name="Segmentation"></a>
The `imx.m` function provides a graphical user interface for segmenting 3D image data. The demo below stems from: `HELP_imx`.
![Segmentation](docs/img/imx_demo.gif){:width="70%"}

### Meshing <a name="Meshing"></a>
Multi-material tetrahedral meshing is enabled using [TetGen](http://wias-berlin.de/software/tetgen/). The TetGen interface is based on the `runTetGen.m` function. The demo below comes from the help file `HELP_runTetGen`.
![Tetrahedral meshing](docs/img/bunnyMesh.gif){:width="70%"}

### Finite Element Analysis <a name="FEA"></a>
Finite element analysis is enabled through the FEBio interface (see also the `runMonitorFEBio` function.
The image below is for large strain analysis of a twisting bar and stems from the demo `DEMO_FEBio_bar_twist`. Other `DEMO_FEBio_...` files cover uni-axial tension/compression, bending, indentation, viscoelastic analysis, contact and indentation problems, multi-generational materials for pre-load analysis.
![Large strain analysis](docs/img/barTwist.gif){:width="70%"}

# Installation <a name="Installation"></a>
### 1. Installing 3rd party packages
Skip this step if finite element analysis and figure exporting are not required.
Expand Down
47 changes: 44 additions & 3 deletions docs/About.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,48 @@ description: "About GIBBON"
header-img: "img/home-bg.jpg"
---

## About GIBBON
GIBBON (The Geometry and Image-Based Bioengineering add-On) is an open-source MATLAB toolbox by [Kevin M. Moerman](https://kevinmoerman.org) and includes an array of image and geometry visualization and processing tools and is interfaced with free open source software such as [TetGen](https://wias-berlin.de/software/tetgen/), for robust tetrahedral meshing, and [FEBio](https://febio.org/) for finite element analysis. The combination provides a highly flexible image-based modelling environment and enables advanced inverse finite element analysis.
# Summary
[GIBBON](www.gibboncode.org) (The Geometry and Image-Based Bioengineering add-On) is an open-source MATLAB toolbox for segmentation, image-based modeling, visualization, meshing, and finite element analysis. GIBBON includes an array of image and geometry visualization and processing tools and is interfaced with free open source software such as [TetGen](http://wias-berlin.de/software/tetgen/), for robust tetrahedral meshing, and [FEBio](http://febio.org/) for finite element analysis. The combination provides a highly flexible image-based modelling environment and enables advanced inverse finite element analysis.
![Overview of GIBBON](html/GIBBON_overview.jpg){:width="100%"}

![Overview of GIBBON](img/GIBBON_overview.jpg){:width="100%"}
# Application highlights
- [Segmentation](#Segmentation)
- [Meshing](#Meshing)
- [Finite element analysis](#FEA)
- [Geometric tools](#Geometric)
- [Visualization](#Visualization)

## Segmentation <a name="Segmentation"></a>
The `imx.m` function provides a graphical user interface for segmenting 3D image data. The demo below stems from: `HELP_imx`.
![Segmentation](/img/imx_demo.gif){:width="70%"}

## Meshing <a name="Meshing"></a>
Multi-material tetrahedral meshing is enabled using [TetGen](http://wias-berlin.de/software/tetgen/). The TetGen interface is based on the `runTetGen.m` function. The demo below comes from the help file `HELP_runTetGen`.
![Tetrahedral meshing](/img/bunnyMesh.gif){:width="70%"}

## Finite Element Analysis <a name="FEA"></a>
Finite element analysis is enabled through the FEBio interface (see also the `runMonitorFEBio` function.
The image below is for large strain analysis of a twisting bar and stems from the demo `DEMO_FEBio_bar_twist`. Other `DEMO_FEBio_...` files cover uni-axial tension/compression, bending, indentation, viscoelastic analysis, contact and indentation problems, multi-generational materials for pre-load analysis.
![Large strain analysis](/img/barTwist.gif){:width="70%"}

## Geometric tools <a name="Geometric"></a>
Models, `geoSphere`
Mesh conversions `hex2tet`
Refinement, resampling `subTri`, `triSurfaceRemesh`
Lattice structures `element2lattice`
CAD (computer aided design) tools `polyExtrude`, `polyLoftLinear`, `sweepLoft`

## Visualization <a name="Visualization"></a>
`cFigure` `vcw` `im2patch` `gpatch` `quiver3DPatch` `fourthOrderTensorView`


# Setting up GIBBON
## Installation
The GIBBON website (and the `readme.md` file) contains detailed installation instructions. For basic use only the GIBBON folder and sub-directories need to be added to the MATLAB path. For use with FEBio for finite element analysis FEBio needs to be installed and the patch to FEBio needs to be provided. If exporting of figures to images and animations is of interest the export_fig library needs to be downloaded and added to the MATLAB path also.

## Third party packages
* __FEBio__ [@Maas2012], a finite element solver, which enables finite element analysis with GIBBON. FEBio is available through [FEBio](http://febio.org/) website.
* __TetGen__, an open source tetrahedral meshing package [@Si2015]. TetGen is utilized in GIBBON for tetrahedral meshing, see also the `runTetGen.m` function. TetGen is included with GIBBON but alternative versions may be available through the [TetGen](http://wias-berlin.de/software/tetgen/) website.
* __export_fig__, a MATLAB library for exporting publication quality figures. export_fig is used in GIBBON with the `efw.m` (export figure widget) to export figures, and with `anim8.m` (animation function) to export animated .gif files. export_fig can be obtained via the [export_fig](https://github.com/altmany/export_fig) GitHub repository.

## Use of GIBBON in research
2 changes: 1 addition & 1 deletion docs/HELP_element2HexLattice.m
Original file line number Diff line number Diff line change
Expand Up @@ -268,7 +268,7 @@
camlight headlight; lighting flat;

subplot(1,2,2);
title('Lattice side 1','fontSize',fontSize)
title('Lattice side 2','fontSize',fontSize)
hold on;
gpatch(Fs,Vs,CsF);
colormap(cMap);
Expand Down
4 changes: 2 additions & 2 deletions docs/HELP_geoSphere.m
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@
r=1; %sphere radius
n=0:1:3; %Refinements
pColors=autumn(numel(n));
for q=1:1:numel(n);
for q=1:1:numel(n)
[F,V,~]=geoSphere(n(q),r);
subplot(2,2,q); hold on;
title([num2str(n(q)),' refinement iterations'],'FontSize',fontSize);
Expand All @@ -61,7 +61,7 @@
titleCell={'tetrahedron','cube','octahedron','icosahedron','dodecahedron'};
n=0; %Refinements
pColors=autumn(numel(n));
for solidType=solidTypes;
for solidType=solidTypes
[F,V,~]=geoSphere(0,r,solidType);
subplot(2,3,solidType); hold on;
title(['Based on: ',titleCell{solidType}],'FontSize',fontSize);
Expand Down
Binary file added docs/img/barTwist.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/img/bunnyMesh.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/img/imx_demo.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion lib/patchNormPlot.m
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,7 @@
%Set defaults
set(hp,'EdgeColor','none','FaceColor','k');

if nargout>1
if nargout>0
varargout{1}=hp;
end

Expand Down
40 changes: 25 additions & 15 deletions paper.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,25 +21,35 @@ bibliography: paper.bib

![Overview of GIBBON](docs/html/GIBBON_overview.jpg){:width="100%"}

# Application highlights
## Segmentation
The `imx.m` function provides a graphical user interface for segmenting 3D image data.
# Application highlights
- [Segmentation](#Segmentation)
- [Meshing](#Meshing)
- [Finite element analysis](#FEA)
- [Geometric tools](#Geometric)
- [Visualization](#Visualization)

## Meshing
`runTetGen.m`
## Segmentation <a name="Segmentation"></a>
The `imx.m` function provides a graphical user interface for segmenting 3D image data. The demo below stems from: `HELP_imx`.
![Segmentation](docs/img/imx_demo.gif){:width="70%"}

## Geometric tools
Models, `geoSphere.m`
Mesh conversions `hex2tet.m`
Refinement, resampling `subTri.m`, `triSurfaceRemesh.m`
Lattice structures
CAD (computer aided design) tools `polyExtrude.m`, `polyLoftLinear.m`
## Meshing <a name="Meshing"></a>
Multi-material tetrahedral meshing is enabled using [TetGen](http://wias-berlin.de/software/tetgen/). The TetGen interface is based on the `runTetGen.m` function. The demo below comes from the help file `HELP_runTetGen`.
![Tetrahedral meshing](docs/img/bunnyMesh.gif){:width="70%"}

## Visualization
`cFigure.m` `vcw.m` `im2patch.m` `gpatch.m` `quiver3DPatch.m` `fourthOrderTensorView.m`
## Finite Element Analysis <a name="FEA"></a>
Finite element analysis is enabled through the FEBio interface (see also the `runMonitorFEBio` function.
The image below is for large strain analysis of a twisting bar and stems from the demo `DEMO_FEBio_bar_twist`. Other `DEMO_FEBio_...` files cover uni-axial tension/compression, bending, indentation, viscoelastic analysis, contact and indentation problems, multi-generational materials for pre-load analysis.
![Large strain analysis](docs/img/barTwist.gif){:width="70%"}

## Finite Element Analysis
`runMonitorFEBio.m`
## Geometric tools <a name="Geometric"></a>
Models, `geoSphere`
Mesh conversions `hex2tet`
Refinement, resampling `subTri`, `triSurfaceRemesh`
Lattice structures `element2lattice`
CAD (computer aided design) tools `polyExtrude`, `polyLoftLinear`, `sweepLoft`

## Visualization <a name="Visualization"></a>
`cFigure` `vcw` `im2patch` `gpatch` `quiver3DPatch` `fourthOrderTensorView`

# Setting up GIBBON
## Installation
Expand Down

0 comments on commit 16a3138

Please sign in to comment.