Below is a summary of some of the commercial and academic projects I've worked on.


## 2024 ##

### Marinerg E-Infrastructure - ICHEC ###

The [Marinerg](https://www.marinerg-i.eu/) project aims to build a European distributed research infrastructure for offshore renewable energy. ICHEC are part of a work-package to build the e-infrastructure to support the project, including the design of web portals to support facility access and a data management system. The project is at an early stage, but some of the content is open-source and available [here](https://git.ichec.ie/marinerg-i).

#### Tools ####

* `Django`
* `Angular`


### ICHEC Common Tools - ICHEC ###

Recently at ICHEC we've started building up a collection of documentation and software tools to help us standardize some of our workflows across projects. The documentation takes the form of a [handbook](https://ichec-handbook.readthedocs.io/en/latest/src/frontmatter.html) which has a public version. The software takes the form of a collection of open-source [Python packages](https://git.ichec.ie/performance/toolshed), including functionality for technical report generation, system monitoring, batch task processing on HPC systems and workflow management.

#### Tools ####

* `Python`
* `Jupyter Book`
* `Gitlab CICD`

### Hierarchical Storage Management API - ICHEC ###

As part of the [IO-SEA](https://iosea-project.eu) project for developing next generation exascale storage systems, ICHEC developed an API and implementation for interfacing a collection of diverse storage backends under a hierarchical storage management (HSM) paradigm.

The developed software package [Hestia](https://git.ichec.ie/io-sea-internal/hestia) is a C++ application including Http and S3 client and server implementations and an interface to to CEA's [Phobos](https://git.ichec.ie/io-sea-internal/hestia) tape storage library.

#### Tools ####

* `C++/CMake`
* `Curl`
* `RPM Packaging`

## 2021

### Porting the Webex App to Linux - Cisco

<img border="0" alt="Webex on Linux" src="/static/WebexLinux.png" width="600">

**Image:** The Webex App running on Ubuntu 22.04

At [Cisco](https://www.cisco.com/) I was the technical lead on the project to bring the [Webex App to the Linux platform](https://help.webex.com/en-us/article/9vstcdb/Webex-App-for-Linux), supporting Ubuntu and Red Hat. My main technical work was on the installer, build system integration and platform integrations (e.g. keychain).

#### Tools

* `C++`
* `CMake`
* `Qt` UI Framework

## 2019

### 3D Modelling and Graphical Programming in the Browser - ZEG.ai

<video width="350" height="250" controls>
  <source src="/static/TableBuild_Speedup.mp4" type="video/mp4">
Your browser does not support the video tag.
</video>

<video width="350" height="250" controls>
  <source src="/static/TableMorph.webm" type="video/ogg">
Your browser does not support the video tag.
</video>

**Videos:** Left - A browser-based 3D modelling tool based on graphical programming being used to create a 3D model of a table. Right - Scripted morphing of a table with photorealistic rendering.

Most 3D model creation is highly manual with the typical process not being well suited for automation. While at [ZEG.ai](https://www.zeg.ai/) I worked on developing different ways to build 3D content that are better suited for automation. One project involved building a browser-based 3D modelling engine and a new graphical programming language. The engine was built using `C++` and integrated with `Three.js` and `Angular` in the browser using `WebAssembly`. The language was expressive and user-friendly, allowing commercial quality 3D models to be created by non-expert users. See the [ZEG.ai Sketchfab channel](https://sketchfab.com/zeg.ai) for nice examples.

A related project involved creating a cloud-based renderer so that models built in the browser could be quickly used to create photo-realistic renders and animations. This involved Python wrapping the `C++` 3D engine with `PyBind` and integrating it with `Blender/Cycles` on `AWS`. Render tasks were managed with `RabbitMQ` and `Celery`.

#### Tools
* `C++`, `Python`, `PyBind`, `Clang`
* `Angular`, `WebAssembly`
* `ThreeJS`, `Blender`
* `RabbitMQ`, `Celery`

### Single Image Reconstruction of 3D Models with Deep Learning - ZEG.ai

<video width="350" height="240" controls>
  <source src="/static/MachineLearning.mp4" type="video/mp4">
Your browser does not support the video tag.
</video>

**Video:** Fully automatic 3D model generation from a single image in the browser. This example was based on the `Pix2Mesh` architecture running on AWS.

While at ZEG.ai I worked on several projects for automatic 3D model generation from single images. This involved researching, assessing and building on many state-of-the-art architectures from the academic literature. These covered 3D CNNs, custom octree-based architectures, graph CNNs and differentiable renderers. One particularly interesting approach was based on Neural Programming via RNNs allowing the graph created in the browser-based graphical programming language to be directly predicted. 

#### Tools
* `PyTorch`
* `CNN`s, `RNN`s

## 2018

### Single Image Reconstruction of 3D Models with Computer Vision - ZEG.ai

<video width="350" height="240" controls>
  <source src="/static/ZegDemo.mp4" type="video/mp4">
Your browser does not support the video tag.
</video>

**Video:** Automatic generation of 3D models from single images using computer vision and mesh morphing approaches.

One of the early projects I worked on at ZEG.ai involved the generation of 3D models automatically from single images using computer vision techniques. The most effective approach involved item segmentation, classification and mesh morphing via optimization to best fit the resulting shape. This worked reasonably well for items with simple topology such as low poly containers, footwear, and clothing. I also evaluated more sophisticated computer vision approaches based on pose-estimation and non-rigid registration.

#### Tools
* `OpenCV`
* `scikit-image`

## 2017

### Automatic 3D Model Generation - Entrepreneur First

<img border="0" alt="Automatically generated lamps" src="/static/pjimage.jpg" width="350">
<img border="0" alt="Automatically generated living room" src="/static/room.png" width="350">

**Image:** Left - An early prototype of an automatic shape generator for lamps. This idea later evolved into a powerful approach for general 3D model generation, such as the room and contents on the Right.

While at [Entrepreneur First](https://www.joinef.com/) most of my activities were related to company building and customer research, however my partner and I did build a snazzy automatic lamp model generator on a 4-day coding binge. This was written from scratch in `Python` with `Blender` and `Cycles` integration in a `Docker` container, while my partner built a `React`/`Node` web platform for it. I'm quite proud of this one as it was pulled together very quickly under pressure. The source code is [available here](https://codeberg.org/jmsgrogan/render-generator-backend).

#### Tools
* `Blender`
* `Docker`

### Microrheology - University of Oxford

<img border="0" alt="Blood Flow" src="/static/CAD_RBC.png" width="600">

**Image:** A segmented tumour microvessel network and a computer simulation of red blood cells flowing through it (thanks to Dr. Miguel Bernabeu, University of Edinburgh).

The availability of oxygen in tumours affects malignancy and responsiveness to treatments such as radiotherapy. Tumour oxygenation depends on how red blood cells are distributed throughout the microvasculature. Suitable rules for modelling the distribution of red blood cells in the pathological vasculature of tumours have not yet been determined. I worked on studying how red blood cells distribute at branching points in the tumour, and ultimately making better predictions of oxygenation. This study was in collaboration with Prof. Ruth Muschel's group at the University of Oxford, Dr. Miguel Bernabeu at the University of Edinburgh and Prof. Tomas Alarcon's group at the CRM, Barcelona.

My role here was segmentation of 3D image stacks from mulit-photon microscopy in mice, design of microfluidics chambers for flow experiments, particle tracking for measuring red blood cell flux and help in post-processing and 3D visualization of experimental and simulation results.

#### Relevant publications:

* M.O. Bernabeu, J Köry, **J.A. Grogan**, B. Markelc, A.B. Ricol, M. d'Avezac, J. Kaeppler, N. Daly, J. Hetherington, T. Krüger, P.K. Maini, J.M. Pitt-Francis, R.J. Muschel, T. Alarcón, H.M. Byrne, Abnormal Morphology Biases Haematocrit Distribution in Tumour Vasculature and Contributes to Heterogeneity in Tissue Oxygenation, In Submission, 2019.

### Semi-Flexible Polymer Networks - University of Oxford

<img border="0" alt="Tracking" src="/static/cell_cell_communication.gif" width="600">

**Image:** A simulation of two cells deforming a semi-flexible network (thanks to Dan Humphries).

The extracellular matrix is a fibre network through which cells can communicate mechanically. The fibrous nature of the network allows cells to communicate over surprisingly large distances. Dr. Dan Humphries, Prof. Eamonn Gaffney and I investigated how the architecture of these fibre networks affects cell-cell communication.

#### Relevant publications:

* D.L. Humphries, **J.A. Grogan**, E.A. Gaffney, The Mechanics of Phantom Mikado Networks, Journal of Physics Communications, 2:055015, 2018.

* D.L. Humphries, **J.A. Grogan**, E.A. Gaffney, Mechanical Cell-Cell Communication in Fibrous Networks: The Importance of Network Geometry, Bulletin of Mathematical Biology, 79:498-524, 2017.

## 2016


### Angiogenesis - University of Oxford

<a href="https://jmsgrogan.github.io/MicrovesselChaste/">
<img border="0" alt="Sprouting Angiogenesis" src="/static/corneal_angiogenesis.png" width="600">
</a>

**Image:** A simulation of sprouting angiogenesis in a corneal micropocket assay experiment.

Sprouting angiogenesis is a process in which new vasculature is formed. It is of central importance in the diagnosis and treatment of many cancers. It is a complex combination of biophysical processes, which are the focus of much on-going research. I worked on the development and application of open-source software for multi-scale modelling of this process and integration with intravital imaging data, in collaboration with Prof. Ruth Muschel's group at the University of Oxford.

#### Relevant publications:

* **J.A. Grogan**, J.M. Pitt-Francis, P.K. Maini, H.M. Byrne, The Importance of Geometry in the Corneal Micropocket Angiogenesis Assay, PLoS Computational Biology 14(3):e1006049, 2018.

* **J.A. Grogan**, A.J. Connor, B. Markelc, R.J. Muschel, P.K. Maini, H.M. Byrne, J.M. Pitt-Francis, Microvessel Chaste: An Open Library for Spatial Modelling of Vascularized Tissues, Biophysical Journal, 112(9):1767-1772, 2017.


### Radiotherapy  - University of Oxford

<a href="https://jmsgrogan.github.io/MicrovesselChaste/">
<img border="0" alt="Radiotherapy" src="/static/radiotherapy.png" width="600">
</a>

**Image:** A multi-scale, agent-based simulation of radiotherapy using a real tumour microvessel network.

The responsiveness of tumours to radiotherapy depends on oxygen availability, which in turn depends on the structure of the tumour microvessel network. I studied the relationship between the 3D structure of the microvasculature and radiotherapy response. This involved simulating tumour growth and radiotherapy using multi-scale, agent-based soft tissue models.

#### Relevant publications:

* **J.A. Grogan**, B. Markelc, A.J. Connor, R.J. Muschel, J.M. Pitt-Francis, P.K. Maini, H.M. Byrne, Predicting the influence of microvascular structure On tumour response to radiotherapy, IEEE Transactions on Biomedical Engineering, 64(3):504-511, 2016.

## 2015

### Stent Design - NUI Galway

<a href="https://git.jmsgrogan.com/jgrogan/phd-scripts">
<img border="0" alt="Tracking" src="/static/tracking.png" width="600">
</a>

**Image:** Finite element simulation of stent delivery in a stenosed, curved, vessel.

Accurate simulation of coronary stent deployment in the body can reduce reliance on costly experimental testing and accelerate device design. Detailed simulations, including curved, stenosed arteries and folded balloons encompass many challenging areas of solid mechanics. This includes, large deformations of anisotropic elastic materials, finite sliding contact, and construction of complex 3D geometries. I developed techniques for high-resolution stent deployment modelling, and applied them in studying bioabsorbable magnesium devices.

#### Relevant publications:

* **J.A. Grogan**, S.B. Leen, P.E. McHugh, Optimizing the design of a bioabsorbable metal stent using computer simulation methods, Biomaterials, 34:8049-60, 2013.
* **J.A. Grogan**, S.B. Leen, and P.E. McHugh. Comparing coronary stent material performance on a common geometric platform through simulated benchtesting, Journal of Mechanical Behaviour of Biomedical Materials, 12:129-138, 2012.
* **J.A. Grogan**, B.J. O’Brien, S.B. Leen, P.E. McHugh, A corrosion model for bioabsorbable metallic stents, Acta Biomaterialia, 7:3523-33, 2011.

## 2014

### Bioabsorbable Alloys - NUI Galway

<a href="https://git.jmsgrogan.com/jgrogan/phd-scripts">
<img border="0" alt="Radiotherapy" src="/static/corrosion.png" width="600">
</a>

**Image:** 3D Scanning electron microscopy of a bioabsorbable magnesium alloy post corrosion.

A new generation of temporary, bioabsorbable metallic medical devices is showing great promise. New computational techniques are required for simulating the bio-corrosion of these devices and predicting long term performance and risk. I developed several models of magnesium bio-corrosion, based on experimental testing of long-term corrosion of AZ31 alloy under static loading and applied these in the study of bioabsorbable metal stents.

#### Relevant publications:

* **J.A. Grogan**, S.B. Leen, P.E. McHugh, A physical corrosion model for bioabsorbable metallic stents, Acta Biomaterialia, In Press, DOI:10.1016/j.actbio.2013.12.059, 2014.
* **J.A. Grogan**, D. Gastaldi, M. Castelletti, F. Migliavacca, G. Dubini, P.E. McHugh, A novel flow chamber for biodegradable alloy assessment in physiologically realistic environments, Review of Scientific Instruments, 34:094301, 2013.
* **J.A. Grogan**, S.B. Leen, P.E. McHugh, Optimizing the design of a bioabsorbable metal stent using computer simulation methods, Biomaterials, 34:8049-60, 2013.
* **J.A. Grogan**, B.J. O’Brien, S.B. Leen, P.E. McHugh, A corrosion model for bioabsorbable metallic stents, Acta Biomaterialia, 7:3523-33, 2011.

### Metal Micromechanics

<a href="https://git.jmsgrogan.com/jgrogan/phd-scripts">
<img border="0" alt="Tracking" src="/static/micromechanics2.png" width="600">
</a>

**Image:** A crystal plasticity finite element simulation of a deforming stent strut.

The struts of coronary stents are less thick than a human hair. At this size-scale the assumptions of continuum plasticity theory begin to break-down, as metallic grains become comparable in dimension to the the strut. Explicitly modelling individual grains when simulating the deformation of stent struts allows 'statistical size effects', resulting in unexpectedly low failure strains, to be investigated. I studied the deformation of stent struts using crystal plasticity theory for a range of candidate stent materials, including magnesium.

#### Relevant publications:

* **J.A. Grogan**, S.B. Leen, P.E. McHugh, Computational micromechanics of bioabsorbable magnesium stents, Journal of Mechanical Behaviour of Biomedical Materials, 34:93-105, 2014.
* **J.A. Grogan**, S.B. Leen, P.E. McHugh, Influence of statistical size effects on the plastic deformation of coronary stents, Journal of Mechanical Behaviour of Biomedical Materials, 20:61-76, 2013.


