How jacobjoseph-96/autonix works
Autonix is a Qt-based ADAS simulation. The user starts and configures a simulated drive; the application advances vehicle, traffic, and pedestrian behavior, applies perception and control, then presents the scene and detections. The graph preserves the documented scenario-loading, traffic-rule, ACC, lane-change, perception, and visualization capabilities. Most implementation files were not excerpted, so internal wiring beyond explicit README statements is shown only where supported; unverified links are dashed.
Main entry points: main_window.cpp Simulation coordinator · perspective_view.cpp Perspective view · perception_filter.cpp Perception filter · npc_vehicle.cpp NPC behavior
Components 20
Simulation and control
- Ego vehicle
Core_API/src/ego_vehicle.cpp - Adaptive cruise
Core_API/src/adaptive_cruise_controller.cpp - Lane change
Core_API/src/lane_change_controller.cpp - Traffic logic
Core_API/src/traffic_logic.cpp - Shared domain types
Core_API/include/types.hpp
World and traffic
- NPC behavior
Core_API/src/npc_vehicle.cpp - Pedestrian simulation
Core_API/src/pedestrian.cpp - Road and lanes
Core_API/src/road_segment.cpp - Traffic lights
Core_API/src/traffic_light.cpp - Traffic signs
Core_API/src/traffic_sign.cpp - XML scenario parser
Core_API/src/xml_scenario_parser.cpp
Perception
- Perception filter
Perception/src/perception_filter.cpp - Gap analysis
Perception/src/gap_analyzer.cpp - Safe distance
Perception/src/safe_distance_calculator.cpp
User interface
- Simulation coordinator
UI/src/main_window.cpp - Perspective view
UI/src/perspective_view.cpp - Detection overlay
UI/src/detection_overlay.cpp - Speed limit display
UI/src/speed_limit_widget.cpp - Diagnostic logs
UI/src/diagnostic_logs.cpp
Other components
- Driver
Connections 31
- Driver → Simulation coordinator: starts and configures
- Simulation coordinator → Ego vehicle: advances simulation
- Simulation coordinator → Adaptive cruise: configures ACC
- Simulation coordinator → Lane change: requests lane changes
- Simulation coordinator → Traffic logic: applies traffic rules
- Simulation coordinator → NPC behavior: updates traffic
- Simulation coordinator → Pedestrian simulation: simulates crossings
- Simulation coordinator → Road and lanes: uses road model
- Simulation coordinator → Traffic lights: updates traffic lights
- Simulation coordinator → XML scenario parser: loads scenarios
- Simulation coordinator → Perception filter: runs perception
- Simulation coordinator → Perspective view: updates scene
- Simulation coordinator → Detection overlay: shows detections
- Simulation coordinator → Diagnostic logs: reports events
- Simulation coordinator → Speed limit display: shows speed limit
- Perception filter → Gap analysis: uses gap analysis
- Perception filter → Safe distance: uses distance calculation
- Detection overlay → Perception filter: displays detections
- Detection overlay → Speed limit display: integrates speed limit
- NPC behavior → Traffic lights: checks light state
- NPC behavior → Traffic signs: checks signs
- Lane change → Road and lanes: validates lane
- Lane change → Ego vehicle: updates maneuver
- Perception filter → Road and lanes: checks lane relevance
- Perception filter → Ego vehicle: filters by vehicle state
- Perspective view → Ego vehicle: renders vehicle
- Perspective view → NPC behavior: renders vehicles
- Perspective view → Pedestrian simulation: renders pedestrians
- Perspective view → Road and lanes: renders road
- Perspective view → Traffic lights: renders lights
- Perspective view → Traffic signs: renders signs