The next generation of autonomous research software, serving as the central hub for integrating devices, planners, and analyzers for self-directed scientific campaigns.
ARES OS 2.0 acts as the core central hub that connects and coordinates components such as devices, planners, and analyzers into cohesive research campaigns. Built on a modular, distributed architecture, ARES provides the framework for defining complex, multi-step experiments and managing all connected systems from a unified dashboard.
- ARES UI (Web Client): The user interface for defining campaigns, monitoring progress, and interacting with devices via a standard web browser.
- ARES Service (Back-End): The core component that hosts business logic, manages the component lifecycle of devices, planners, and analyzers, and executes campaign orchestration.
- Centralized Orchestration: ARES connects and manages the flow of data and control between Planners (AI/logic), Analyzers (post-processing), and Devices (physical hardware).
- Cross-Platform Support: ARES OS is compatible with Linux, macOS and Windows
- Language Agnostic API: Protobuf and gRPC provide a language agnostic API for integrating with ARES. Full support for creating custom components is provided for:
- C#: Using the native ARES libraries
- Python: Thanks to the PyARES library (See Related Projects)
- Component Management: Devices, Planners, and Analyzers can be added, removed and edited easily via dedicated settings menus within the ARES software.
- Experiment Templates: Users craft complex research campaigns by defining Experiment Templates.
- Template Components: Each template specifies:
- Planning Parameters: The values you're asking your planner to provide for your experiments.
- Startup Script: A set of steps executed once at the beginning of an experiment before running the first iteration of your experiment template.
- Experiment Script: The core logic of your campaign. A set of defined steps ARES executes with every iteration of your experiment.
- Closeout Script: The closeout logic of your campaign. Ensures all hardware is set to an optimal state before finishing a campaign. This logic is also used in the event a campaign fails to complete.
- Analysis Assignment: Analyzers define their specific input needs, and ARES allows you to define what values from your campaign will match these expected values.
- Planner Assignment: The assignment of your planning parameters to specific planning services.
- Unified Dashboard: A single web interface for defining campaigns, monitoring execution progress and more.
- Direct Device Control: Users can directly control and monitor the status of all added devices from the ARES Dashboard.
ARES OS 2.0 offers two deployment methods: the simple ARES Launcher desktop app for local use, or manual build/run for custom environments.
For the easiest local deployment, use the ARES Launcher desktop application. Download the latest release for your operating system from the ARES Launcher Releases. Follow the documentation outlined in the ARES Launcher repository.
Prerequisites
- .NET 10 SDK (Required for all components)
- Entity Framework Core Tools: Required for managing database migrations
dotnet tool install --global dotnet-ef
- An Integrated Development Environment (IDE):
- Recommendation: Visual Studio 2026 for the best C# and Blazor development experience.
Steps
- Clone the repository:
git clone https://github.com/AFRL-ARES/ARES.git
cd ARES- Trust HTTPS Development Certificate
dotnet dev-certs https --trust- Restore Dependencies and Build
dotnet restore
dotnet build- Initialize Database
dotnet run --project .\AresService\AresService.csproj --migrate- Start ARES
dotnet run --project .\AresService\AresService.csproj
dotnet run --project .\UI\UI.csproj- Navigate to the UI
Open a browser of your choice and navigate to https://localhost:7084. If you've started ARES successfully, this will open the ARES Dashboard.
ARES OS 2.0 relies on the following repositories for its operation foundation, component creation, and simplified installation:
- ARES Launcher: Desktop application for installing and managing local ARES instances with a simple UI. (Downloadable Releases Available)
- ARES Datamodel: Defines the universal Protobuf/gRPC contracts used for communication between the ARES Service, UI, and all custom components.
- PyARES: The official ARES Python library for building custom planners, analyzers and devices, enabling support beyond the native C# environment.
Distribution A. Approved for public release: distribution unlimited. AFRL-2025-5329