Skip to content

Version 3 of the Graphical Realism Framework for Industrial Control Simulation (GRFICS)

License

Notifications You must be signed in to change notification settings

Fortiphyd/GRFICSv3

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

54 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

GRFICSv3 β€” Industrial Cyber-Physical Range

GRFICSv3 is a fully containerized cyber-physical simulation of a chemical plant. It brings together realistic process dynamics, industrial protocols, engineering tools, and attacker infrastructure all inside Docker.

Use it to explore ICS cybersecurity, practice incident response, or develop and test defensive and offensive tools in a safe, hands-on environment.

Chemical plant screenshot


πŸš€ Key Features

  • End-to-end ICS simulation β€” PLCs, HMIs, engineering workstations, routers, and attacker tools
  • 3D process visualization β€” watch tank levels and valves respond in real time
  • Virtual Walkthroughs β€” explore the warehouse in first person, observing physical layouts and security lapses
  • Built-in attack & defense tools β€” Kali Linux, MITRE Caldera, and a custom router/IDS interface
  • Modular, containerized design β€” launch everything with a single docker compose up
  • Realistic networking β€” segmented process and enterprise zones with controllable traffic flow

🀌 Installation

1. Prerequisites

  • Recommended OS: Linux (native, VM, or WSL2) GRFICS uses Docker and Docker Compose. Linux provides the lightest and most reliable experience.
  • Required packages: Docker, Git, and Git LFS

Example install on Debian/Ubuntu:

sudo apt update
sudo apt install -y docker git git-lfs
# (Optional) allow non-root docker use
sudo usermod -aG docker $USER

Log out and back in if you added yourself to the Docker group.


2. Install GRFICS

You can either pull the prebuilt images from Docker Hub (quick and easy)
or build everything locally if you want to modify or customize.


πŸ‹ Option A: Pull prebuilt images (recommended)

The fastest way to get started β€” no building required!

# Download the latest docker-compose.yml
curl -O https://raw.githubusercontent.com/Fortiphyd/GRFICSv3/main/docker-compose.yml

# Start GRFICS using prebuilt images from Docker Hub
docker compose pull
docker compose up -d

πŸ—οΈ Option B: Clone and build

git clone https://github.com/Fortiphyd/GRFICSv3.git
cd GRFICSv3
docker compose build

Start the environment:

docker compose up -d

Watch logs (optional):

docker compose logs -f

Then open your browser and visit http://localhost β€” you should see the 3D chemical plant simulation come to life.


πŸ—ž Using GRFICS

Starting & Stopping

  • To stop all running containers:

    docker compose down
  • To stop but keep containers/images:

    docker compose stop
  • To restart later:

    docker compose start

Core Containers & Access Points

Container How to Access Credentials Description
Simulation http://localhost β€” 3D chemical plant visualization
Engineering Workstation http://localhost:6080/vnc.html β€” HMI and PLC configuration
Kali http://localhost:6088/vnc.html kali : kali Attacker VM for exploitation and scanning
Caldera http://localhost:8888 red : fortiphyd-red MITRE Caldera with OT plugin
PLC (OpenPLC) http://localhost:8080 or 192.168.95.2:8080 openplc : openplc Programmable logic controller
HMI http://localhost:6081 or 192.168.90.107:8080 admin : admin Operator interface
Router / Firewall UI 192.168.90.200:5000 or 192.168.95.200:5000 admin : password View or modify firewall rules

Screenshots

Simulation

Simulation screenshot

Kali

Kali screenshot

Caldera

Caldera screenshot

Engineering Workstation

EW screenshot

Router / Firewall

Router screenshot

PLC

PLC screenshot

HMI

HMI screenshot


πŸ›  Troubleshooting

Network interface errors

If build or startup fails with a message about creating a network interface, edit docker-compose.yml (around lines 140 and 149) to match your actual network interface name (e.g., eth0, enp0s3, or your WSL adapter).

Permission errors

If you see permission denied errors running Docker commands, prefix with sudo or ensure your user is added to the docker group.

Container won’t start

Run:

docker compose logs <service-name>

to view detailed logs, or docker compose ps to check the status of all containers.

Resetting everything

To rebuild from scratch:

docker compose down --volumes
docker compose up -d --build

βš™οΈ Development Tips

  • To rebuild a single service:

    docker compose build <service-name>
    docker compose up -d <service-name>
  • To monitor logs interactively:

    docker compose logs -f
  • To check which containers are running:

    docker compose ps

🌐 About GRFICS

GRFICS was created by Fortiphyd Logic to make industrial cybersecurity accessible, hands-on, and realistic. Version 3 takes everything from earlier GRFICS releases and brings it into a modern, containerized architecture ready for use in classrooms, cyber ranges, and research environments.

Learn more at https://fortiphyd.com


πŸ’‘ More from Fortiphyd Logic

If you enjoy GRFICSv3, you may be interested in our commercial offerings that expand on GRFICS with:

  • A growing catalog of sector-specific simulations β€” power grid, water, manufacturing, and maritime
  • Hosted cyber ranges for teams and classrooms, no installation required

Visit https://fortiphyd.com to learn more, or follow us on LinkedIn for updates, new labs, and release announcements.

πŸ’› If you use GRFICSv3 in your research, teaching, or demos and want to help sustain its development, consider sponsoring the project. Even small contributions help us keep improving the open version!


Build. Break. Defend. Learn.
GRFICSv3 brings industrial cybersecurity to life, no hardware required.

Releases

No releases published

Sponsor this project

 

Packages

No packages published