- About me
- Unreal Engine projects
- Container utilities (not specific to the Unreal Engine)
- Research-related projects
- Other utilities
I'm Dr Adam Rehn, a scientific researcher and software developer living in Cairns, Australia. I run the applied research company TensorWorks and I am actively involved in our ongoing collaboration with Epic Games. To the best of my knowledge, I am considered the world's foremost expert on Unreal Engine containers, as a result of both my role as creator and primary maintainer of the projects and initiatives listed in the Unreal Engine projects section below, and my involvement in bringing official container support to the Unreal Engine. I am passionate about automation, tooling and infrastructure, with a current focus on integrating the Unreal Engine with cloud native technologies.
You can find more details regarding my education and employment history in my curriculum vitae. I am not actively seeking new employment opportunities at the current time.
-
unrealcontainers.github.io: the source code for the Unreal Containers community hub, which acts as the central hub for developers running the Unreal Engine inside containers. The hub provides comprehensive documentation and community-curated educational resources, social links, and a list of support providers who offer professional assistance in using Unreal Engine containers.
-
ue4research.github.io: the source code for the Unreal Engine For Research ("UE4Research") project website, which provides information and community resources for academics or industry researchers who wish to use the Unreal Engine to conduct scientific research. The site includes a list of resources for getting started, a literature review of publications which cite the Unreal Engine, and a discussion of the rationale for utilising the Unreal Engine within various research use cases.
-
ue4-docker: command-line tool and accompanying Dockerfiles that provides functionality for building both Windows and Linux container images for the Unreal Engine.
-
ue4-runtime: a set of Linux container images that provide minimal, pre-configured environments for running packaged Unreal Engine projects with full GPU acceleration via the NVIDIA Container Toolkit.
-
ue4cli: library and associated command-line tool that provides a convenient and platform-agnostic interface for working with the Unreal Engine. Commands are provided for key workflow tasks relating to Unreal projects and plugins, and for querying the details of third-party libraries that are bundled with the Unreal Engine.
-
conan-ue4cli: a plugin for ue4cli that provides functionality for integrating third-party libraries into Unreal Engine projects and plugins using the Conan C++ package management system.
-
ue4-conan-recipes: contains the default recipes that ship with conan-ue4cli. Includes recipes for a growing number of popular open source libraries and frameworks.
-
ue4-ci-helpers: a Python package designed to provide abstractions that simplify the process of writing platform-agnostic build scripts for Unreal projects and plugins, which can be run as part of Continuous Integration (CI) pipelines.
-
ue4-example-dockerfiles: a collection of example Dockerfiles that demonstrate various uses of Unreal Engine containers, including building projects and plugins, packaging dedicated servers, and packaging projects that use Pixel Streaming for Linux.
-
ue4-grpc-demo: an example project with accompanying Dockerfiles demonstrating how to build a simple Unreal-based microservice that uses Google's popular gRPC framework for communication, and run the microservice inside a Linux container. (Note that this demo has not yet been updated to reflect the extensive overhaul of conan-ue4cli that occurred in early 2020.)
-
ue4-opencv-demo: an old example project demonstrating how to use conan-ue4cli to build a custom OpenCV package that links against the Unreal-bundled versions of zlib and libpng, and then consume the custom-built OpenCV package in a simple Unreal project. (Note that this demo has not yet been updated to reflect the extensive overhaul of conan-ue4cli that occurred in early 2020.)
-
ue4-cloud-rendering-demo: [DEPRECATED, REPLACED BY CONTAINER SUPPORT FOR PIXEL STREAMING IN UNREAL ENGINE 4.27] An old example project with accompanying Dockerfiles that demonstrates how to use the deprecated UE4Capture plugin inside GPU-accelerated Linux containers to stream audio and video to a web browser via WebRTC. Unreal Engine 4.27 introduced an equivalent demo (which was also written by me) that uses Docker Compose to run a Pixel Streaming application in the official Unreal Engine container images.
-
pixel-streaming-linux: this repository acts as the public issue tracker for Pixel Streaming For Linux. Note that this repository does not contain the actual source code for the Linux implementation of Pixel Streaming, which is stored in the various branches of my fork of the official Unreal Engine repository. (You will need to be logged in with a GitHub account that has been granted access to the upstream Unreal Engine repository in order to access the fork.)
-
UE4Capture: [DEPRECATED, REPLACED BY LINUX SUPPORT FOR PIXEL STREAMING IN UNREAL ENGINE 4.27] An old proof-of-concept prototype that provided a cross-platform implementation of audio and framebuffer capture, designed for use with standardised streaming protocols such as WebRTC. This plugin predated the release of Epic's official Pixel Streaming system by several months, and development was discontinued when Pixel Streaming was unveiled.
- ue4-utils: a collection of assorted utilities for working with or understanding the internals of Unreal Engine 4. The most useful tool in this collection is switchfinder, which assists in identifying all of the Unreal Engine's supported command-line switches (many of which are undocumented.)
-
docker-shell: command-line tool that makes it quick and easy to start interactive shells inside both Windows and Linux containers while automatically bind-mounting the current working directory from the host system. Automatically activates common features when supported by the host system (e.g GPU acceleration) and highly configurable using Docker image labels. See the developer-images repository for examples of container images designed for use with docker-shell.
-
dll-diagnostics: command-line tool that provides functionality to assist in identifying the DLL dependencies of an application or library and diagnosing dependency loading issues. Primarily intended for use when migrating existing applications to Windows containers, where traditional GUI-based tools are unavailable.
-
charcoal-morphotypes: source code for the charcoal particle segmentation and classification system presented in the journal article: Emma Rehn, Adam Rehn, and Aidan Possemiers. Fossil charcoal particle identification and classification by two convolutional neural networks. Quaternary Science Reviews, 226:106038, 2019.
-
VideoAnnotator: GUI tool to facilitate annotation of video files with custom metadata that can then be ingested by data processing pipelines and used as training data for machine learning algorithms. Primarily intended for use by artificial intelligence and computer vision researchers.
-
Taxonomist: GUI tool to facilitate manually categorising images into classes so that they can be used as training data for image classification algorithms. Primarily intended for use by artificial intelligence and computer vision researchers.
-
ClimateQuery: GUI tool to facilitate processing and querying weather data obtained from the Australian Bureau of Meteorology. Allows researchers to extract data for specific weather stations and time periods, and then run queries against the extracted datasets to produce summarised data that is suitable for further statistical analysis.
-
gen-invoice: library and associated command-line tool that provides a flexible, template-driven system for generating invoices and quotes in both HTML and PDF format.
-
mergetiff (Python version) and mergetiff (C++ version): libraries and associated command-line tool that provides functionality to merge raster bands from multiple GeoTiff files into a single dataset. Primarily useful when working with multispectral image data or raster bands representing per-pixel labels for training machine learning models.