diff --git a/.github/workflows/rust-release.yml b/.github/workflows/rust-release.yml index 74e753d..7a65f7a 100644 --- a/.github/workflows/rust-release.yml +++ b/.github/workflows/rust-release.yml @@ -22,9 +22,6 @@ jobs: upload-assets: needs: create-release - defaults: - run: - working-directory: antares strategy: matrix: include: @@ -41,7 +38,7 @@ jobs: with: # (required) Comma-separated list of binary names (non-extension portion of filename) to build and upload. # Note that glob pattern is not supported yet. - bin: ... + bin: antares # (optional) Target triple, default is host triple. # This is optional but it is recommended that this always be set to # clarify which target you are building for if macOS is included in @@ -67,3 +64,4 @@ jobs: archive: $bin-$tag-$target # (required) GitHub token for uploading assets to GitHub Releases. token: ${{ secrets.GITHUB_TOKEN }} + manifest-path: antares/Cargo.toml diff --git a/README.md b/README.md index 1f2a030..a077037 100644 --- a/README.md +++ b/README.md @@ -56,7 +56,12 @@ We present ANTARES, an open-source, software-based naval radar simulator. ANTARE ## Credits -This project was developed by **Juan Sebastian Urrea-Lopez** as part of research initiatives at **Universidad de los Andes**, in collaboration with the **Armada de la República de Colombia**. +This project was developed jointly by The Software Design Lab at Universidad de los Andes and the Colombian Navy. + +**Authors:** +- Juan Sebastian Urrea-Lopez (Universidad de los Andes) +- Camilo Barreto-Reyes (Universidad de los Andes, Colombian Navy) +- Mario Linares-Vásquez (Universidad de los Andes) ## License diff --git a/antares-python/pyproject.toml b/antares-python/pyproject.toml index eed5d4c..4df78a3 100644 --- a/antares-python/pyproject.toml +++ b/antares-python/pyproject.toml @@ -1,9 +1,11 @@ [project] name = "antares-python" -version = "0.1.2" +version = "1.0.0" description = "Python interface for the Antares simulation software" authors = [ { name = "Juan Sebastian Urrea-Lopez", email = "js.urrea@uniandes.edu.co" }, + { name = "Camilo Barreto-Reyes", email = "c.barretor@uniandes.edu.co" }, + { name = "Mario Linares-Vásquez", email = "m.linaresv@uniandes.edu.co" }, ] readme = "README.md" requires-python = ">=3.13" diff --git a/antares-web/package.json b/antares-web/package.json index 916efc0..0d73931 100644 --- a/antares-web/package.json +++ b/antares-web/package.json @@ -1,7 +1,7 @@ { "name": "antares-web", "private": true, - "version": "2.0.0", + "version": "1.0.0", "type": "module", "scripts": { "dev": "vite", diff --git a/docs/antares-cli.md b/docs/antares-cli.md index 4cb0b90..9c0b1e9 100644 --- a/docs/antares-cli.md +++ b/docs/antares-cli.md @@ -63,5 +63,5 @@ antares-cli subscribe ## 📎 Technical Details -For installation instructions, configuration schema, and developer options, see the [antares-python GitHub repository](https://github.com/jsurrea/antares-python). +For installation instructions, configuration schema, and developer options, see the [antares-python GitHub repository](https://github.com/TheSoftwareDesignLab/ANTARES/tree/main/antares-python). diff --git a/docs/antares-python.md b/docs/antares-python.md index d570c6d..7361e91 100644 --- a/docs/antares-python.md +++ b/docs/antares-python.md @@ -81,4 +81,4 @@ Whether you're building mission rehearsal tools, tactical planning apps, or AI-c ## 🔗 Learn More -Full technical details, API reference, and source code are available at the [GitHub repository](https://github.com/TheSoftwareDesignLab/ANTARES/antares-python). +Full technical details, API reference, and source code are available at the [GitHub repository](https://github.com/TheSoftwareDesignLab/ANTARES/tree/main/antares-python). diff --git a/docs/antares-simulator.md b/docs/antares-simulator.md index 0b8fe84..967bb7d 100644 --- a/docs/antares-simulator.md +++ b/docs/antares-simulator.md @@ -7,62 +7,96 @@ description: >- A high-fidelity simulation engine for maritime radar and sensor systems, designed for real-time experimentation and analysis. --- -# 🧠 ANTARES Simulator - -> The core of the platform: a high-fidelity, real-time radar simulation engine built for performance, extensibility, and operational realism. -{: .prompt-info } - ## 🎯 Purpose -The simulator models **naval radar operations** in dynamic maritime scenarios, supporting both training and system integration efforts. -It enables reproducible experiments, behavior analysis, and real-time radar tracking. +The simulator models **naval radar operations** in dynamic maritime scenarios, supporting both training and system integration efforts. It enables reproducible experiments, behavior analysis, and real-time radar tracking. ## 🔄 Architecture Overview -- **Built in Rust**: Ensures high performance, type safety, and memory security. -- **Command-Driven**: Controlled via TCP messages for full integration flexibility. -- **Event Loop Core**: Uses a time-stepped loop to simulate real-world radar behavior. -- **Data Broadcast**: Publishes `Track` objects in real-time to subscribers (via TCP or WebSocket). +ANTARES follows a modular design centered around two main subsystems: **Simulation** and **Radar**, coordinated by a central **Controller**. ```mermaid -flowchart TD - A[Simulation Controller] --> B[World State Engine] - B --> C[Ship Dynamics] - B --> D[Radar Signal Generator] - D --> E[Track Data Stream] +graph TD + Controller[Controller] + + Controller --> Simulation[Simulation] + Controller --> Radar[Radar] + + Ship[Ship] --> Emitter[Emitter] + Simulation --> Emitter + + Emitter --> MovementStrategy[Movement Strategy] + + Line[Line] --> MovementStrategy + Circle[Circle] --> MovementStrategy + Random[Random] --> MovementStrategy + Stationary[Stationary] --> MovementStrategy + + Radar --> Detector[Detector] + Radar --> Tracker[Tracker] + + Detector --> TrackInterface[Track InterfaceTCP] + Tracker --> TrackInterface + + TrackInterface --> TCI[TCI] + TrackInterface --> TDI[TDI] ``` -> Track data can be consumed by GUI clients, automated systems, or external C4I modules. -> {: .prompt-tip } +### **Core Components** + +**🎛️ Controller** +Acts as a unified facade managing both simulation and radar subsystems. Provides centralized control for initialization, execution, and coordination between components. + +**🌊 Simulation Subsystem** +- **Emitters**: Generate radar signals within the environment (e.g., ships, buoys) +- **Ships**: Moving or stationary vessels that emit trackable signals +- **Movement Strategy**: Implements the Strategy Pattern to decouple movement logic from entities, supporting: + - **Line**: Linear movement with constant heading + - **Circle**: Circular patrol patterns + - **Random**: Unpredictable movement within boundaries + - **Stationary**: Fixed position entities + +**📡 Radar Subsystem** +- **Detector**: Captures raw signals from emitters, filters by operational range, and calculates distance/direction to generate individual plots +- **Tracker**: Processes multiple plots over time to establish coherent tracks, calculating target velocity and trajectory + +**🔗 Track Interface (TCP)** +- **TCI (Track Control Interface)**: Receives control commands from external systems for runtime radar adjustments +- **TDI (Track Data Interface)**: Transmits detected tracks and associated data to connected systems for analysis + +### **Design Philosophy** + +- **High Performance**: Built in Rust for type safety, memory security, and concurrent execution +- **Extensibility**: Strategy Pattern enables easy addition of new movement behaviors without architectural changes +- **Real-Time Operation**: Event-driven loop ensures sub-10ms latency for live tracking scenarios +- **Integration-Ready**: TCP-based interfaces support seamless connection with C4I and Combat Management Systems + +> The modular architecture allows components to operate independently while maintaining tight integration for real-time performance. +{: .prompt-tip } ## 📦 Use Cases -* 🧭 **Officer Training Simulations** - Build realistic operational scenarios without physical deployments. +* 🧭 **Officer Training Simulations**: Build realistic operational scenarios without physical deployments. -* 🔍 **Sensor Behavior Testing** - Validate how detection algorithms react under different vessel configurations. +* 🔍 **Sensor Behavior Testing**: Validate how detection algorithms react under different vessel configurations. -* 🧪 **System Integration & Interoperability** - Emulate radar behavior to test communication with external systems (e.g., CMS, C4I). +* 🧪 **System Integration & Interoperability**: Emulate radar behavior to test communication with external systems (e.g., CMS, C4I). -* 🧰 **Research and Development** - Rapidly prototype and validate new tracking algorithms or radar control strategies. +* 🧰 **Research and Development**: Rapidly prototype and validate new tracking algorithms or radar control strategies. ## 🛠️ Configuration -Simulation parameters are defined via structured TOML or TCP commands. -Entities are configurable with: +Simulation parameters are defined via structured TOML or TCP commands. Entities are configurable with: * Initial position, heading, and velocity * Radar range, scan rate, and update interval * Behavioral strategies and decision logic > Ships and radars can be added, modified, or removed at runtime. -> {: .prompt-info } +{: .prompt-info } ## Learn More For source code, contributions, or in-depth technical details, visit the GitHub repository: -👉 [https://github.com/TheSoftwareDesignLab/ANTARES/antares](https://github.com/TheSoftwareDesignLab/ANTARES/antares) +👉 [https://github.com/TheSoftwareDesignLab/ANTARES/tree/main/antares](https://github.com/TheSoftwareDesignLab/ANTARES/tree/main/antares) diff --git a/docs/antares-web.md b/docs/antares-web.md index f4285ee..6e56b51 100644 --- a/docs/antares-web.md +++ b/docs/antares-web.md @@ -51,5 +51,5 @@ _Adding a new vessel with customizable parameters_ ## Learn More For source code, contributions, or in-depth technical details, visit the GitHub repository: -👉 [https://github.com/TheSoftwareDesignLab/ANTARES/antares-web](https://github.com/TheSoftwareDesignLab/ANTARES/antares-web) +👉 [https://github.com/TheSoftwareDesignLab/ANTARES/tree/main/antares-web](https://github.com/TheSoftwareDesignLab/ANTARES/tree/main/antares-web) diff --git a/docs/index.md b/docs/index.md index 40683e7..c4d97a6 100644 --- a/docs/index.md +++ b/docs/index.md @@ -6,20 +6,20 @@ toc: true # ⚓ ANTARES ## A Modern, Open-Source Platform for Simulating Naval Radar Operations -**ANTARES** is a modular, real-time radar simulator developed for training, validation, and research in naval environments. -It seamlessly integrates with modern systems, while remaining intuitive, secure, and extensible. +**ANTARES** is a modular, real-time radar simulator developed for training, validation, and research in naval environments. It seamlessly integrates with modern systems, while remaining intuitive, secure, and extensible. ## 🎯 Mission **Prepare. Validate. Evolve.** -ANTARES is designed to serve **military training programs**, **system integrators**, and **research teams** by simulating realistic naval radar operations in software. It empowers decision-making and systems engineering—*before touching real hardware*. +ANTARES is designed to serve **military training programs**, **system integrators**, and **research teams** by simulating realistic naval radar operations in software. It empowers decision-making and systems engineering *before touching real hardware*. ## 🔍 What is ANTARES? -**ANTARES** is an open-source project developed by **Juan Sebastián Urrea-López** at **Universidad de los Andes**, in collaboration with the **Colombian Navy**. +**ANTARES** is an open-source project developed by **The Software Design Lab** at **Universidad de los Andes**, in collaboration with the **Colombian Navy**. -> This work is presented in the paper: **“ANTARES: A Software-Based Tool for Simulating Naval Radar Operations”** +> This work is presented in the paper: +**“ANTARES: A Software-Based Tool for Simulating Naval Radar Operations”** _International Conference on Military Technologies 2025_ Brno, Czechia {: .prompt-info } @@ -65,32 +65,19 @@ Feedback confirmed its: The platform is composed of multiple sub-projects, each with a focused role: ### 🧠 [`antares-simulator`](antares-simulator/) -> High-performance simulation engine written in **Rust** -> Simulates ship motion, wave interaction, radar detection, and signal broadcasting -{: .prompt-info } +High-performance simulation engine written in **Rust**. Simulates ship motion, wave interaction, radar detection, and signal broadcasting ### 🌐 [`antares-web`](antares-web/) -> Interactive web interface for configuring simulations, tracking targets, and visualizing radar output in real time -{: .prompt-info } +Interactive web interface for configuring simulations, tracking targets, and visualizing radar output in real time ### 🧪 [`antares-python`](antares-python/) -> Python SDK for scripting simulation workflows and integrating with external platforms or AI agents -{: .prompt-info } +Python SDK for scripting simulation workflows and integrating with external platforms or AI agents ### 💻 [`antares-cli`](antares-cli/) -> Terminal interface for automation, testing, and headless execution of ANTARES simulations -{: .prompt-info } - -All components are released under the MIT License and designed to work independently or as an integrated system. - -## 📄 Documentation +Terminal interface for automation, testing, and headless execution of ANTARES simulations -All documentation is written in Markdown and compiled automatically using -👉 [**showcase-chirpy-easy-docs**](https://github.com/jsurrea/showcase-chirpy-easy-docs) -powered by GitHub Actions. - -> View individual guides, tutorials, and API references inside the `docs/` folder or through each sub-project’s page. -{: .prompt-tip } +> All components are released under the MIT License and designed to work independently or as an integrated system. +{: .prompt-info } ## 🌍 Impact @@ -101,21 +88,18 @@ ANTARES brings the power of simulation to modern naval operations by: - **Improving readiness** with repeatable and measurable scenarios - **Democratizing access** to radar simulation technologies through open source -> Simulation is not just a convenience — it is a strategic enabler for defense innovation. -{: .prompt-danger } - ## 📬 Contact -**Juan Sebastian Urrea-Lopez** -Lead Developer & Researcher -[📧 Contact](mailto:js.urrea@uniandes.edu.co) +**Project Authors:** +- **Juan Sebastian Urrea-Lopez** (Universidad de los Andes) +- **Camilo Barreto-Reyes** (Universidad de los Andes / Colombian Navy) +- **Mario Linares-Vásquez** (Universidad de los Andes) + +*Developed through a collaboration between:* +🔹 **The Software Design Lab** at Universidad de los Andes +🔹 **Armada de la República de Colombia** ## 🔗 Links - 🔗 [GitHub Repository](https://github.com/thesoftwaredesignlab/ANTARES) -- 🔗 [Project Website](https://thesoftwaredesignlab.github.io/ANTARES) - 🔗 [Conference Info](https://icmt2025.cz) - -> Ready to explore? -Start with the simulator 👉 [`antares/`](./antares/) -{: .prompt-success }