Skip to content

Repository files navigation

Qompass AI on Unreal Game Engine

Qompass AI Unreal Solutions: A more humane UX for AI

Repository Views GitHub all releases

Unreal Engine
Unreal Engine Documentation Unreal Engine Tutorials
DOI

License: AGPL v3 License: Q-CDA

▶️ Qompass AI Quick Start
curl -fsSL https://raw.githubusercontent.com/qompassai/unreal/main/scripts/quickstart.sh | sh
📄 We advise you read the script BEFORE running it 😉
#!/usr/bin/env sh
# /qompassai/unreal/scripts/quickstart.sh
# Qompass AI Unreal Quickstart
# Copyright (C) 2025 Qompass AI, All rights reserved
####################################################
set -eu
OS=$(uname -s | tr '[:upper:]' '[:lower:]')
case "$OS" in
linux*)
	OS="linux"
	LOCAL="$HOME/.local"
	;;
darwin*)
	OS="macos"
	LOCAL="$HOME/.local"
	;;
msys* | mingw* | cygwin*)
	OS="windows"
	LOCAL="$USERPROFILE/.local"
	;;
*)
	echo "❌ Unsupported OS for this script."
	exit 1
	;;
esac
BIN="$LOCAL/bin"
mkdir -p "$BIN"
echo "╭─────────────────────────────────────────────╮"
echo "│   Qompass AI · Unreal Engine Quickstart     │"
echo "╰─────────────────────────────────────────────╯"
echo "  © 2025 Qompass AI. All rights reserved      "
echo
echo "Which Unreal Engine version do you want to set up?"
echo "  1) 5.6 (latest)"
echo "  2) 5.5"
echo "  3) 5.4"
echo "  4) Custom branch or tag"
echo "  q) Quit"
printf "Choose [1]: "
read -r verch
case "${verch:-1}" in
1 | "") UE_BRANCH="5.6" ;;
2) UE_BRANCH="5.5" ;;
3) UE_BRANCH="5.4" ;;
4)
	printf " Enter branch/tag: "
	read -r UE_BRANCH
	;;
q | Q) exit 0 ;;
*)
	echo "Invalid choice"
	exit 1
	;;
esac
UE_DIR="$LOCAL/UnrealEngine"
if [ ! -d "$UE_DIR" ]; then
	echo "==> Cloning Unreal Engine $UE_BRANCH into $UE_DIR ..."
	git clone -b "$UE_BRANCH" --single-branch "https://github.com/EpicGames/UnrealEngine.git" "$UE_DIR" ||
		git clone -b "$UE_BRANCH" --single-branch "git@github.com:EpicGames/UnrealEngine.git" "$UE_DIR"
else
	echo "==> Updating UE source for branch $UE_BRANCH ..."
	cd "$UE_DIR"
	git checkout "$UE_BRANCH"
	git fetch --all
fi
cd "$UE_DIR"
echo
echo "Pick platforms to build for (multi-select, e.g., 1 3 6)."
echo "  1) Linux (default)"
echo "  2) LinuxARM64"
echo "  3) Windows"
echo "  4) Mac"
echo "  5) Android"
echo "  6) iOS"
echo "  7) tvOS"
echo "  8) VisionOS"
echo "  a) All"
echo "  q) Quit"
printf "Which platform(s)? [1]: "
read -r plats
[ -z "${plats:-}" ] && plats="1"
[ "$plats" = "q" ] && exit 0
PLATFLAGS=""
PLATSDKS=""
for sel in $plats; do
	case "$sel" in
	1) PLATFLAGS="$PLATFLAGS Linux" ;;
	2) PLATFLAGS="$PLATFLAGS LinuxArm64" ;;
	3) PLATFLAGS="$PLATFLAGS Win64" ;;
	4) PLATFLAGS="$PLATFLAGS Mac" ;;
	5)
		PLATFLAGS="$PLATFLAGS Android"
		PLATSDKS="$PLATSDKS Android"
		;;
	6)
		PLATFLAGS="$PLATFLAGS IOS"
		PLATSDKS="$PLATSDKS IOS"
		;;
	7)
		PLATFLAGS="$PLATFLAGS TVOS"
		PLATSDKS="$PLATSDKS TVOS"
		;;
	8) PLATFLAGS="$PLATFLAGS VisionOS" ;;
	a | A)
		PLATFLAGS="Linux LinuxArm64 Win64 Mac Android IOS TVOS VisionOS"
		PLATSDKS="Android IOS TVOS"
		break
		;;
	*) ;;
	esac
done
echo
echo "Build system:"
echo "  1) Official Unreal Automation Tool (multi-platform, Installed Build) [default]"
echo "  2) Local developer Makefile build (for Linux devs, Editor only, fast)"
printf "Choose build system [1]: "
read -r buildsys
[ -z "$buildsys" ] && buildsys="1"
if [ "$buildsys" = "2" ]; then
	echo "==> Generating Makefiles for local developer build..."
	./GenerateProjectFiles.sh -makefiles
	echo
	echo "Makefile build menu:"
	echo "  1) Build Editor (default: Development)"
	echo "  2) Build Editor (Debug: much slower)"
	echo "  3) Build all essential tools (UnrealPak, ShaderCompileWorker, etc.)"
	echo "  4) Clean and full rebuild of Editor"
	echo "  5) Build UnrealGame"
	echo "  q) Quit"
	printf "Choose [1]: "
	read -r maketgt
	[ -z "$maketgt" ] && maketgt="1"
	echo "==> Ensuring ASP.NET Core HTTPS dev certificate is trusted for local development (if required)..."
dotnet dev-certs https --trust || {
  echo "❌ Could not trust HTTPS certificate. See https://aka.ms/dev-certs-trust for manual steps."
}
	case "$maketgt" in
	1 | "")
		echo "==> Building Unreal Editor (Development, StandardSet)..."
		make -j"$(nproc)" # "make" on its own builds the editor ("StandardSet")
		;;
	2)
		echo "==> Building Unreal Editor (Debug)..."
		make -j"$(nproc)" UnrealEditor-Linux-Debug
		;;
	3)
		echo "==> Building essential tools..."
		make -j"$(nproc)" CrashReportClient ShaderCompileWorker UnrealLightmass InterchangeWorker UnrealPak UnrealEditor
		;;
	4)
		echo "==> Cleaning and rebuilding the Editor..."
		make UnrealEditor ARGS="-clean" && make -j"$(nproc)" UnrealEditor
		;;
	5)
		echo "==> Building UnrealGame..."
		make -j"$(nproc)" UnrealGame
		;;
	q | Q)
		exit 0
		;;
	*)
		echo "Unknown choice, doing make (default)..."
		make -j"$(nproc)"
		;;
	esac
	if [ "$OS" = "linux" ]; then
		TOOLS="UnrealEditor UnrealPak ShaderCompileWorker CrashReportClient UnrealLightmass InterchangeWorker UnrealGame"
		TOOLROOT="$UE_DIR/Engine/Binaries/Linux"
		for tool in $TOOLS; do
			[ -f "$TOOLROOT/$tool" ] && ln -sf "$TOOLROOT/$tool" "$BIN/$tool" && echo "  → Symlinked $tool -> $BIN/$tool"
		done
		echo
		echo "==> Done. Run the editor with:"
		echo "cd $TOOLROOT"
		echo "./UnrealEditor"
		echo
		echo "To open a project:"
		echo "./UnrealEditor \"/path/to/YourProject.uproject\""
		echo
		echo "Append -game to run as a game, or see Unreal docs for more CLI options."
	else
		echo "Development makefile build is only implemented for Linux."
	fi
else
	echo
	echo "Choose configs (1 Development [default]   2 Debug   3 Test   4 Shipping   a All)"
	printf "Configs: "
	read -r buildconfs
	[ -z "${buildconfs:-}" ] && buildconfs="1"
	CONFVAL=""
	for sel in $buildconfs; do
		case "$sel" in
		1) CONFVAL="${CONFVAL}Development;" ;;
		2) CONFVAL="${CONFVAL}Debug;" ;;
		3) CONFVAL="${CONFVAL}Test;" ;;
		4) CONFVAL="${CONFVAL}Shipping;" ;;
		a | A)
			CONFVAL="Debug;Development;Test;Shipping"
			break
			;;
		*) ;;
		esac
	done
	CONFVAL=$(echo "$CONFVAL" | sed 's/;$//')
	echo "Enable extra build options:"
	echo "  1) Derived Data Cache (DDC)"
	echo "  2) CEF (Chromium Embedded Framework)"
	echo "  3) ISPC (Vectorization)"
	echo "  4) All"
	echo "  n) None [default]"
	printf "Features [n]: "
	read -r feat
	[ -z "$feat" ] && feat="n"
	WITH_DDC=false
	CEF3=false
	ISPC=false
	case "$feat" in
	4)
		WITH_DDC=true
		CEF3=true
		ISPC=true
		;;
	*)
		echo "$feat" | grep 1 >/dev/null && WITH_DDC=true
		echo "$feat" | grep 2 >/dev/null && CEF3=true
		echo "$feat" | grep 3 >/dev/null && ISPC=true
		;;
	esac
	echo "==> Updating submodules and prerequisites..."
	git submodule update --init --recursive
	./Setup.sh
	./GenerateProjectFiles.sh
	PLAT_SETS=""
	for pf in $PLATFLAGS; do
		PLAT_SETS="$PLAT_SETS -set:With${pf}=true"
	done
	CARGS=""
	[ "$CEF3" = "true" ] && CARGS="$CARGS -set:ExtraCompileArgs=-bCompileCEF3"
	[ "$ISPC" = "true" ] && CARGS="$CARGS -set:ExtraCompileArgs=-bCompileISPC"
	[ "$WITH_DDC" = "true" ] || WITH_DDC="false"
	echo "==> Building Unreal Engine with selected options..."
	./Engine/Build/BatchFiles/RunUAT.sh BuildGraph \
		-script=Engine/Build/InstalledEngineBuild.xml \
		-target="Make Installed Build Linux" \
		"$PLAT_SETS" \
		-set:GameConfigurations="$CONFVAL" \
		-set:WithDDC=$WITH_DDC \
		"$CARGS" \
		-set:CompileDatasmithPlugins=false \
		-set:AllowParallelExecutor=true
	echo "==> Build finished!"
	case "$OS" in
	linux)
		TOOLS="UnrealEditor UnrealPak ShaderCompileWorker"
		TOOLROOT="$UE_DIR/Engine/Binaries/Linux"
		;;
	macos)
		TOOLS="UnrealEditor UnrealPak ShaderCompileWorker UnrealVersionSelector"
		TOOLROOT="$UE_DIR/Engine/Binaries/Mac"
		;;
	windows)
		TOOLS="UnrealEditor.exe UnrealPak.exe ShaderCompileWorker.exe UnrealVersionSelector.exe"
		TOOLROOT="$UE_DIR/Engine/Binaries/Win64"
		;;
	esac
	for tool in $TOOLS; do
		src="$TOOLROOT/$tool"
		dest="$BIN/$(basename "$tool" .exe)"
		if [ -f "$src" ]; then
			ln -sf "$src" "$dest"
			echo "  → Symlinked $tool → $dest"
		else
			echo "  ⚠ Not found: $src (may not have been built for this platform)"
		fi
	done
	SETLINE="export PATH=\"$BIN:\$PATH\""
	for RCFILE in "$HOME/.bashrc" "$HOME/.zshrc" "$HOME/.profile"; do
		[ -f "$RCFILE" ] || continue
		grep -F "$SETLINE" "$RCFILE" >/dev/null 2>&1 ||
			{ printf '\n# Unreal Quickstart: Add local bin to PATH\n%s\n' "$SETLINE" >>"$RCFILE"; }
	done
	echo
	if [ -n "${PLATSDKS:-}" ]; then
		echo "SDK check results:"
		for sdk in $PLATSDKS; do
			found=0
			case "$sdk" in
			Android)
				(command -v sdkmanager >/dev/null 2>&1 || [ -d "$HOME/Android/Sdk" ]) && found=1
				;;
			IOS | TVOS)
				command -v xcodebuild >/dev/null 2>&1 && found=1
				;;
			esac
			if [ "$found" -eq 1 ]; then
				echo "  ✓ $sdk SDK found."
			else
				case "$sdk" in
				Android)
					echo "  ⚠ Android SDK not found. Install Android Studio and ensure ANDROID_HOME is set."
					;;
				IOS | TVOS)
					echo "  ⚠ Xcode or iOS/tvOS SDK not found. Install Xcode and Xcode command line tools."
					;;
				esac
			fi
		done
	fi
	echo
	echo "✅ Unreal Engine setup complete!"
	echo "  → Main editor: $BIN/UnrealEditor"
	for tool in UnrealPak ShaderCompileWorker UnrealVersionSelector; do
		[ -x "$BIN/$tool" ] && echo "  → $tool: $BIN/$tool"
	done
	echo "  → Source: $UE_DIR"
	echo "  → $BIN is in your PATH (after terminal restart)."
	echo
	echo "To launch Unreal Editor:"
	echo "  UnrealEditor"
	echo
	echo "★ You might need to install additional SDKs/platform tools as described above."
	echo "★ For advanced platform packaging/configuration, confirm in official Unreal documentation."
	echo
fi
exit 0

Or, View the quickstart script directly.

🧭 About Qompass AI

Matthew A. Porter
Former Intelligence Officer
Educator & Learner
DeepTech Founder & CEO

Publications

ORCID ResearchGate Zenodo

Developer Programs

NVIDIA Developer Meta Developer HackerOne HuggingFace Epic Games Developer

Professional Profiles

Personal LinkedIn Startup LinkedIn

Social Media

X/Twitter Instagram Qompass AI YouTube

🔥 How Do I Support
🏛️ Qompass AI Pre-Seed Funding 2023-2025 🏆 Amount 📅 Date
RJOS/Zimmer Biomet Research Grant $30,000 March 2024
Pathfinders Intern Program
View on LinkedIn
$2,000 October 2024

🤝 How To Support Our Mission

GitHub Sponsors Patreon Liberapay Open Collective Buy Me A Coffee

🔐 Cryptocurrency Donations

Monero (XMR):

Monero QR Code
42HGspSFJQ4MjM5ZusAiKZj9JZWhfNgVraKb1eGCsHoC6QJqpo2ERCBZDhhKfByVjECernQ6KeZwFcnq8hVwTTnD8v4PzyH
📋 Copy Address

Funding helps us continue our research at the intersection of AI, healthcare, and education

Frequently Asked Questions

Q: How do you mitigate against bias?

TLDR - we do math to make AI ethically useful

A: We delineate between mathematical bias (MB) - a fundamental parameter in neural network equations - and algorithmic/social bias (ASB). While MB is optimized during model training through backpropagation, ASB requires careful consideration of data sources, model architecture, and deployment strategies. We implement attention mechanisms for improved input processing and use legal open-source data and secure web-search APIs to help mitigate ASB.

AAMC AI Guidelines | One way to align AI against ASB

AI Math at a glance

Forward Propagation Algorithm

$$ y = w_1x_1 + w_2x_2 + ... + w_nx_n + b $$

Where:

  • $y$ represents the model output
  • $(x_1, x_2, ..., x_n)$ are input features
  • $(w_1, w_2, ..., w_n)$ are feature weights
  • $b$ is the bias term

Neural Network Activation

For neural networks, the bias term is incorporated before activation:

$$ z = \sum_{i=1}^{n} w_ix_i + b $$ $$ a = \sigma(z) $$

Where:

  • $z$ is the weighted sum plus bias
  • $a$ is the activation output
  • $\sigma$ is the activation function

Attention Mechanism- aka what makes the Transformer (The "T" in ChatGPT) powerful

The Attention mechanism equation is:

$$ Attention(Q, K, V) = softmax(\frac{QK^T}{\sqrt{d_k}})V $$

Where:

  • $Q$ represents the Query matrix
  • $K$ represents the Key matrix
  • $V$ represents the Value matrix
  • $d_k$ is the dimension of the key vectors
  • $\text{softmax}(\cdot)$ normalizes scores to sum to 1

Q: Do I have to buy a Linux computer to use this? I don't have time for that!

A: No. You can run Linux and/or the tools we share alongside your existing operating system:

  • Windows users can use Windows Subsystem for Linux WSL
  • Mac users can use Homebrew
  • The code-base instructions were developed with both beginners and advanced users in mind.

Q: Do you have to get a masters in AI?

A: Not if you don't want to. To get competent enough to get past ChatGPT dependence at least, you just need a computer and a beginning's mindset. Huggingface is a good place to start.

Q: What makes a "small" AI model?

A: AI models ~=10 billion(10B) parameters and below. For comparison, OpenAI's GPT4o contains approximately 200B parameters.

What a Dual-License Means

Protection for Vulnerable Populations

The dual licensing aims to address the cybersecurity gap that disproportionately affects underserved populations. As highlighted by recent attacks[1], low-income residents, seniors, and foreign language speakers face higher-than-average risks of being victims of cyberattacks. By offering both open-source and commercial licensing options, we encourage the development of cybersecurity solutions that can reach these vulnerable groups while also enabling sustainable development and support.

Preventing Malicious Use

The AGPL-3.0 license ensures that any modifications to the software remain open source, preventing bad actors from creating closed-source variants that could be used for exploitation. This is especially crucial given the rising threats to vulnerable communities, including children in educational settings. The attack on Minneapolis Public Schools, which resulted in the leak of 300,000 files and a $1 million ransom demand, highlights the importance of transparency and security[8].

Addressing Cybersecurity in Critical Sectors

The commercial license option allows for tailored solutions in critical sectors such as healthcare, which has seen significant impacts from cyberattacks. For example, the recent Change Healthcare attack[4] affected millions of Americans and caused widespread disruption for hospitals and other providers. In January 2025, CISA[2] and FDA[3] jointly warned of critical backdoor vulnerabilities in Contec CMS8000 patient monitors, revealing how medical devices could be compromised for unauthorized remote access and patient data manipulation.

Supporting Cybersecurity Awareness

The dual licensing model supports initiatives like the Cybersecurity and Infrastructure Security Agency (CISA) efforts to improve cybersecurity awareness[7] in "target rich" sectors, including K-12 education[5]. By allowing both open-source and commercial use, we aim to facilitate the development of tools that support these critical awareness and protection efforts.

Bridging the Digital Divide

The unfortunate reality is that too many individuals and organizations have gone into a frenzy in every facet of our daily lives[6]. These unfortunate folks identify themselves with their talk of "10X" returns and building towards Artificial General Intelligence aka "AGI" while offering GPT wrappers. Our dual licensing approach aims to acknowledge this deeply concerning predatory paradigm with clear eyes while still operating to bring the best parts of the open-source community with our services and solutions.

Recent Cybersecurity Attacks

Recent attacks underscore the importance of robust cybersecurity measures:

  • The Change Healthcare cyberattack in February 2024 affected millions of Americans and caused significant disruption to healthcare providers.
  • The White House and Congress jointly designated October 2024 as Cybersecurity Awareness Month. This designation comes with over 100 actions that align the Federal government and public/private sector partners are taking to help every man, woman, and child to safely navigate the age of AI.

By offering both open source and commercial licensing options, we strive to create a balance that promotes innovation and accessibility. We address the complex cybersecurity challenges faced by vulnerable populations and critical infrastructure sectors as the foundation of our solutions, not an afterthought.

References

About

Qompass AI Unreal

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Sponsor this project

Packages

Used by

Contributors

Languages