Drones are no longer confined to open skies. From warehouse inventory checks to factory-floor inspections and aerial support for next-generation wireless networks, unmanned aerial vehicles increasingly operate indoors, where machinery, shelving, beams, and ceilings turn every flight into a three-dimensional obstacle course. Yet most of the mobility models researchers use to simulate drone behavior were built for a flat, two-dimensional world. A team at Sapienza University of Rome has now closed that gap with Mo3D, an open-source simulation framework that extends a modular mobility model into full 3D space, complete with collision avoidance, obstacle handling, and coordinated swarm behavior. The software, described in the journal SoftwareX, is written in Python and released under the GNU Affero General Public License, making it freely available to any research group or industrial developer who needs realistic drone trajectories in cluttered indoor environments.
The motivation behind the framework stems from a long-standing simplification in the field. Traditional mobility models, such as the classic Random Walk, treat movement as a planar problem, which makes trajectory planning and collision avoidance mathematically tractable but fails to capture the reality that drones must navigate around buildings, adjust altitude, and avoid collisions in all three spatial dimensions. Earlier attempts to extend models like the Random Walk, the Random Direction model, and the Gauss-Markov process into 3D produced smoother or more realistic trajectories, but they generally ignored two crucial ingredients: correlation between the movements of different drones, and avoidance of obstacles and of each other. Models that did address group behavior, such as the Particle Swarm Mobility Model, offered only static, two-dimensional collision avoidance and no obstacle handling at all. Meanwhile, sophisticated path-planning algorithms borrowed from robotics, including Optimal Reciprocal Collision Avoidance, artificial potential fields, and Rapidly-exploring Random Trees, offer strong theoretical guarantees, but their computational cost makes them impractical for generating mobility patterns for large numbers of simulated nodes.
Mo3D builds on the earlier Mo3 model, a lightweight, rule-based framework that had only partial 3D support. The key insight of the new work is that the framework’s five rules, each governing a different aspect of node movement, can be upgraded to three dimensions with targeted mathematical modifications rather than a complete redesign. Two of the rules, Individual Mobility and Correlated Mobility, already supported 3D in the original formulation. The real engineering challenge lay in the Collision Avoidance and Obstacle Avoidance rules, which required significant rework to handle the added complexity of volumetric space.
The 3D collision avoidance mechanism is a study in geometric pragmatism. Each drone’s trajectory is represented as a ray originating from its current position, defined by an azimuth angle and an elevation angle, with the drone’s future location expressed parametrically along that ray. When two drones come within a trigger radius, the framework performs a coplanarity check by computing the determinant of a matrix built from their positions and direction vectors. If the determinant is zero, the two trajectories lie in a common plane, and the analysis proceeds much as it would in 2D, with the lines either parallel, coinciding, or intersecting. If the trajectories are not coplanar, a direct crossing cannot occur, but danger can still lurk: the framework solves a system of two dot-product equations to find the points of minimum distance between the two lines, and flags a collision risk if that distance falls below a safety threshold and if both drones will reach those points in the future rather than having already passed them. This forward-looking check matters because trajectories change as avoidance rules are applied, so two drones skimming past each other today could still collide tomorrow.
Obstacle avoidance in 3D posed a different problem: how to represent solid objects without prohibitive computation. The framework models obstacles as vertical parallelepipeds or elliptic cylinders, in three configurations: resting on the floor, hanging from the ceiling, or filling the entire vertical extent of the environment. The elegant trick is projection. For any obstacle whose vertical span includes the drone’s current altitude, the obstacle is projected onto the drone’s horizontal plane, reducing it to a 2D shape that the original rule can handle directly. The drone’s heading is adjusted to circumvent the projected shape while its elevation angle is left untouched, avoiding unnecessary altitude changes. Obstacles outside the drone’s vertical span are generally ignored, except when a specific set of conditions signals vertical danger: the drone’s ground projection falls within the obstacle’s footprint, the vertical gap to the obstacle is smaller than a trigger distance, and the drone’s elevation angle indicates it is heading toward the hazard. In that case, the drone simply levels off, setting its elevation angle to zero to stabilize altitude and avert impact.
The software architecture reflects the same modularity that characterized the original model. Each drone’s velocity is described in spherical coordinates by magnitude, azimuth, and elevation, and five modules, Individual Mobility, Correlated Mobility, Collision Avoidance, Obstacle Avoidance, and Upper Bounds Enforcement, can be independently enabled or disabled through configuration flags, each running on its own update interval. The default Individual Mobility module uses the Boundless model, but the design allows any model capable of producing a velocity vector, including ones incorporating inertia or aerodynamics, to be swapped in without touching the other modules. A new memory feature stores the speed and direction set by the individual model and restores them if other modules modify them, preserving the drone’s original target destination. Correlated Mobility introduces group behavior through bindings between node pairs, a connectivity distance, and a grouping factor; when a drone’s fraction of connected bound partners falls below a threshold, it enters a Forced state, either steering toward its closest disconnected mate or, in a new option, toward the centroid of the group. Binding matrices can even change over the course of a simulation, allowing group structures to dissolve and reform dynamically.
Validation results demonstrate that the framework’s guarantees hold up in practice. In an ablation study with five nodes in a ten-meter cubic area, the collision avoidance mechanism consistently reduced the probability of two nodes coming within the safety threshold, even in extreme cases where the desired minimum distance approached the maximum possible separation in the volume. In a second test, five drones bound into a single tight group still maintained increased average inter-drone distances as the safety threshold grew, showing that collision avoidance works even when correlation rules are pulling the swarm together. Obstacle avoidance was tested with four drones navigating a grid of sixteen elliptic-cylinder obstacles: the minimum realized clearance rose monotonically from roughly 0.8 meters at the smallest trigger distance to about 12.3 meters at the largest, confirming that the trigger parameter provides effective, predictable control over safety margins even though the relationship is not strictly linear at small values.
Computational cost scales honestly with swarm size. With only the Upper Bounds Enforcement module active, execution time grows approximately linearly with the number of drones, matching the per-node cost of that rule. With all modules enabled, growth becomes superlinear, reaching roughly 7.8 times the normalized baseline time at six drones. The culprit is collision avoidance, which must recompute the pairwise distance matrix between all drones at every update, an operation whose cost grows with the square of the swarm size. The authors are candid that this measurement, taken for swarms of up to six, should be treated as indicative for larger fleets, and they note that collision avoidance is computationally heavy in essentially every model of this kind; optimization-based alternatives also scale quadratically. Future mitigations, such as spatial partitioning or neighbor-list approaches, are outlined in the paper, along with other limitations: obstacle shapes are restricted to two families, avoidance acts primarily through azimuth changes, and obstacles are static, though the architecture is designed so that dynamic obstacles would require only regenerating coordinates each update, not changing the avoidance logic itself.
The illustrative examples showcase the framework’s range. Four drones navigating a replica of a real industrial environment, complete with floor-mounted machinery in a room sixteen by thirty-three by six meters, maintained tight group cohesion while smoothly avoiding both obstacles and each other, with elevation angles varying to clear obstacles at different heights. With correlation disabled, the same drones scattered into independent trajectories yet still avoided every hazard. A second scenario demonstrated dynamic correlation, with drones alternating between independent wandering and convergence as two different binding matrices took effect in turn, while handling obstacles in all three vertical configurations. A third confirmed that full-height elliptic cylinders are circumvented as smoothly as box-shaped obstacles.
The broader implications reach into industrial automation and wireless network design. The work aligns with the RESTART Industrial Networks project, funded under the European Union’s NextGenerationEU program, which targets future factory communication systems involving mobile robots, automated guided vehicles, and drones in obstacle-rich environments. Because Mo3D supports both asynchronous integration, where trajectories are pre-generated for offline use, and synchronous integration, where a network simulator triggers each update in real time and can even reconfigure mobility based on network status, it plugs naturally into 5G and future 6G simulation pipelines. By lowering the barrier between abstract mobility mathematics and realistic deployment scenarios, the framework positions itself as a practical tool for the smart factories and safety-critical robotic systems now on the horizon, where movement, communication, and control are inseparably intertwined.
Subject of Research: 3D mobility modeling and simulation for UAVs in indoor environments
Article Title: Mo 3D – a mobility framework for mobility modeling in 3D indoor environments
Article References: Ferretti, D., De Nardis, L., & Di Benedetto, M.-G. (2026). Mo3D – a mobility framework for mobility modeling in 3D indoor environments. SoftwareX, 36, Article 103098. https://doi.org/10.1016/j.softx.2026.103098
Image Credits: AI Generated
DOI: 10.1016/j.softx.2026.103098
Keywords: UAV mobility, 3D modeling, collision avoidance, obstacle avoidance, drone swarms, indoor simulation, open-source software, wireless networks, 5G, 6G, industrial automation, Python
Cite Scienmag News
Denise Maddox. (October 10, 2026). New Open-Source Framework Simulates Drone Swarms in Full 3D Indoor Worlds. Scienmag. https://scienmag.com/new-open-source-framework-simulates-drone-swarms-in-full-3d-indoor-worlds/
Denise Maddox. "New Open-Source Framework Simulates Drone Swarms in Full 3D Indoor Worlds." Scienmag, 10 October 2026, https://scienmag.com/new-open-source-framework-simulates-drone-swarms-in-full-3d-indoor-worlds/. Accessed 10 October 2026.
Denise Maddox. "New Open-Source Framework Simulates Drone Swarms in Full 3D Indoor Worlds." Scienmag. October 10, 2026. https://scienmag.com/new-open-source-framework-simulates-drone-swarms-in-full-3d-indoor-worlds/

