Skip to content

Chapter 3: 3D Environment Modeling and Simulation

This chapter primarily introduces how to build realistic 3D and physical environment simulations based on Unreal Engine (UE4 / UE5). The learning focus centers on the working principles of RflySim3D and RflySimUE5 engines, the customized import process for 3D vehicles and scene models, and ultimately achieving visual closed-loop control, complex climate switching, and even ultra-large-scale global terrain construction based on GIS and Cesium.


3.1 Background and Theory

RflySim3D is the core engine within the RflySim system responsible for visual rendering and high-fidelity sensor physical feedback. In advanced development scenarios for unmanned systems—such as machine vision (e.g., SLAM, deep reinforcement learning), infrared sensing, and LiDAR-based point cloud obstacle avoidance—the purely dynamical computation (e.g., provided by CopterSim) cannot satisfy the data requirements of the perception layer; thus, a highly realistic 3D physical world simulation becomes essential.

alt text

The engine acquires the six-degree-of-freedom (6-DOF) pose data of the aircraft, computed by the autopilot, via a UDP communication architecture and maps this data onto the virtual scene. Internally, it deeply integrates real-time ray tracing, customizable artificial rain and particle system effects, and supports high-flexibility XML parameter configuration—covering all aspects of perception environment simulation, from material lighting to weather and time evolution.


3.2 Framework and Interfaces

Building one's own interactive 3D scenes often involves certain barriers related to artistic design and C++ programming. To lower the development threshold, RflySim has developed a modular 3D interface and a precompiled component mounting logic system.

alt text

3.2.1 Engine Communication and Control Model

At the framework level, RflySim3D communicates with external computation systems using an extremely lightweight local area network multicast UDP or shared memory protocol, enabling zero-copy integration. Developers can not only issue control commands directly via Python/Simulink, but also utilize predefined XML nodes (e.g., RefPoints) to determine default terrain coordinates, aircraft skins, default sensor offset orientations, and even obstacle matrices.

3.2.2 High-Fidelity Perception and Specialized Component Library

The system's underlying interface supports a full suite of sensor ecosystems, including RGB cameras, global depth maps, semantic segmentation masks, and 360° LiDAR (with multi-line microsecond-level scanning echo simulation). Additionally, it provides prebuilt modules such as infrared pod lock-on guidance effects and multi-aircraft formation trail collision effects. These can be directly exposed to ROS via the built-in Visual/AirSim mapping interface.

alt text

3.2.3 Wide-Area GIS and Physical Extension Integration

For large-scale simulation tasks, the toolchain includes a Cesium-based loading interface and associated plugins. Developers can use this interface to dynamically stitch oblique photogrammetry models, high-resolution satellite imagery, or elevation terrain data (DEM) into the UE map in real time. Coupled with the dynamic weather module library and mechanisms such as V-REP-based physical gravity collision skeleton import, this enables the creation of the most realistic geographical confrontation environments for unmanned clusters.

alt text


3.3 Showcase of Outstanding Cases


3.4 Course-Linked Video Resources

Public Lecture Replay (Session 3: In-Depth Development of 3D Scenes):

3.5 Chapter Experiment Cases

The verification experiments and guided cases related to this chapter are located in the [Installation Directory]\RflySimAPIs\3.RflySim3DUE folder.

3.5.1 Interface Learning Experiments

Located in the 3.RflySim3DUE\0.ApiExps folder, covering foundational interface tutorials for the platform and general introductions to various tools.

Experiment 1: Getting Started with RflySim 3D Development Tools

📝 Experiment Overview: Learn to use 3D engine development tools such as UE Blueprints, 3ds Max, Cesium for Unreal, SketchUp, and Twinmotion, and master the fundamental workflows for creating 3D models and building scenes.

Experiment 2: Using RflySim3D Scene Models

📝 Experiment Overview: Learn to view existing 3D models and scene indexes in RflySim3D, master methods for loading specified scenes and models, and learn how to use the Python interface to create obstacles within the scene.

Experiment 3: RflySim 3D Keyboard Shortcut Interaction Experiment

📝 Experiment Overview: Familiarize yourself with simple interaction methods between RflySim 3D keyboard shortcuts and different objects in the scene, including features such as help menus, data export, vehicle removal, information display/hiding, map switching, view adjustment, and vehicle model switching.

Experiment 4: RflySim 3D Console Command Interface

📝 Experiment Overview: Learn to use the RflySim 3D console command interface, and master real-time control techniques for different objects in the scene via console commands, including core functionalities such as console variables, command registration, and interactive design.

Experiment 5: RflySim 3D Initialization Script (txt) Configuration

📝 Experiment Overview: Learn to configure RflySim 3D scene startup and automatic level loading using txt scripts, including reading/writing txt files via FFileHelper and executing console commands via IConsoleManager to rapidly deploy and initialize simulation scenes.

Experiment 6: RflySim Vehicle 3D Model Adjustment Interface Experiment

📝 Experiment Overview: Bind actuator components and achieve motion-level control of UAV 3D models via XML configuration files and Python/Simulink interfaces, and learn the application of forward kinematics in 3D visualization.

Experiment 7: UE Map Object and Terrain Matching Control

📝 Experiment Overview: This experiment covers RflySim3D scene map setup and teaches how to achieve high-fidelity object-terrain elevation matching via keyboard shortcuts, Python interfaces, and MATLAB/Simulink, including target creation, trajectory generation, and dynamic object-terrain interaction functions.

Experiment 8: RflySim 3D Scene Control Interface Experiment

📝 Experiment Overview: Learn to use the UE4CtrlAPI Python library to control the RflySim 3D simulation environment, including common interface functions such as sending commands, updating UAV states, retrieving object information, and scene interaction.

Experiment 9: RflySim3D GIS Service Interface Experiment

📝 Experiment Overview:
Familiarize yourself with methods for importing high-precision global large scenes using Cesium and performing 3D simulation with arbitrarily specified aircraft GPS start coordinates.

Experiment 10: Common Effect Interfaces in RflySim3D

📝 Experiment Overview:
Learn implementation methods for communication effects, virtual pipelines, explosion effects, roller compactor motion, VTOL wing control, and weather management in RflySim3D. Master techniques for 3D scene interaction and effect generation via Python APIs interfacing with UE4.

Experiment 11: Collision Detection in RflySim3D

📝 Experiment Overview:
Learn the principles of collision detection in the RflySim platform. Master methods for receiving collision messages via Python API and CopterSim, covering three experimental scenarios: ground collisions, static object collisions, and aircraft collisions.

Experiment 12: Custom 3D Scene Construction in RflySim

📝 Experiment Overview:
Learn how to construct repeatable and version-controllable custom 3D simulation scenes within the RflySim 3D toolchain. Master script-based (JSON/Python) configuration methods for scene elements including terrain, objects, lighting, cameras, and entities.

Experiment 13: Actuator Binding

📝 Experiment Overview:
Learn how to configure actuator binding relationships via XML files, using the AttatchToOtherActuator tag to achieve mutual attachment between actuator components, demonstrating hierarchical binding of 8-degree-of-freedom actuators.

Experiment 14: High-Precision Large Scene Import and GPS Binding in Cesium

📝 Experiment Overview:
Familiarize yourself with importing high-precision large scenes and binding arbitrary GPS start coordinates to 3D simulation; verify coordinate consistency between RflySim 3D and ground stations (QGC)/Mavlink.

Experiment 15: UAV Communication Effects

📝 Experiment Overview:
Learn to implement UAV communication effects in RflySim3D, including creating communication links, setting communication ranges, and visualizing signal strength.

3.5.2 Basic Usage Experiments

Stored in the 3.RflySim3DUE\1.BasicExps folder, this section provides a complete set of supplementary teaching materials for beginners.

Experiment 1: RflySim 3D Basic 3D Scene Import Experiment

📝 Experiment Overview: Import UE4/UE5 default scenes into the RflySim platform, and become familiar with the workflow of baking scenes in the UE engine and importing them into RflySim 3D and CopterSim.

Experiment 2: Loading Custom Multirotor Models in RflySim 3D

📝 Experiment Overview: Learn how to import custom multirotor 3D models based on XML and static meshes into RflySim 3D, mastering the core workflow involving 3ds Max model processing, UE baking, and XML configuration.

Experiment 3: Terrain Point Cloud Elevation Reading in RflySim3D

📝 Experiment Overview: Learn to acquire terrain data by scanning 3D scenes in RflySim 3D, and master the use of Python interfaces to compute terrain elevation and point cloud information, enabling reading, visualization, and saving of terrain point cloud data.

Experiment 4: Importing UE4 Default Scenes into RflySim 3D

📝 Experiment Overview: Familiarize yourself with the workflow of baking scenes in UE4 and importing them into RflySim 3D and CopterSim; learn to create UE projects, bake scenes, import resources, generate heightmaps, and coordinate multi-simulation platforms.

Experiment 5: Importing PNG Images into RflySim3D

📝 Experiment Overview: Learn to import images directly into the RflySim3D platform without using the UE editor, master rapid loading and display of Aruco calibration boards, and understand the RflySim3D custom object loading mechanism and core functions of UE4CtrlAPI.

Experiment 6: Importing UE5 Scenes into RflySim

📝 Experiment Overview: Familiarize yourself with the workflow of baking scenes in UE5 and importing them into RflySim 3D and CopterSim; master terrain file generation and map switching methods.

Experiment 7: Runtime GLB Model Import in RflySim

📝 Experiment Overview: Learn to use Datasmith Runtime in RflySimUE5 to directly import GLB 3D models at runtime without using the UE editor; master mapping ClassIDs to UE blueprints, enabling dynamic loading of external models without re-packaging the project.

Experiment 8: UE Material Usage Guidelines

📝 Experiment Overview: Learn material usage in UE 4.27 and UE 5.2, including material reference checks, Nanite support configuration, material creation, editing, application, and optimization to prevent material loss upon importing into RflySim 3D.

Experiment 9: Rapid Import of 3D Models and XML in RflySim 3D

📝 Experiment Overview: Learn how to import FBX 3D models and their accompanying XML configuration files into RflySim 3D, and use Python scripts to automatically load models in designated scenes, enabling custom obstacle generation.

Experiment 10: UE Scene Origin Setting

📝 Experiment Overview: Demonstrate how to temporarily and permanently adjust the pivot point of static mesh actors in small indoor/architectural scenes, precisely aligning objects to the world origin (0,0,0), and using grid alignment and snapping tools for accurate placement.

Experiment 11: Custom Scene Import in RflySim

📝 Experiment Overview:
Learn to build reproducible and version-controllable custom 3D simulation scenes within the RflySim 3D toolchain, and master methods for creating, importing, and parameterizing obstacles.

3.5.3 Advanced Development Experiments

Stored in the 3.RflySim3DUE\2.AdvExps folder, these experiments further familiarize users with certain low-level firmware ecosystem configurations.

Experiment 1: Importing Twinmotion Scenes into RflySim Platform

📝 Experiment Overview:
Learn the complete workflow of importing Twinmotion scenes into UE4 using the Datasmith plugin, baking them, and integrating them into the RflySim 3D and CopterSim platforms.

Experiment 2: Importing and Simulating Blueprint Models in RflySim

📝 Experiment Overview:
Learn to import multi-rotor, fixed-wing, and animated blueprint models into the RflySim 3D simulation platform, master the principles of 3D model skeleton binding, blueprint animation construction, and the technique of controlling custom models via the ActuatorInputs interface.

Experiment 3: Building Large-Scale Global Scenes Using Cesium

📝 Experiment Overview:
Learn the workflow of converting aerial survey OSGB models into 3D Tiles format using CesiumLab and importing them into RflySim 3D, and master the usage of extended GIS service interfaces.

Experiment 4: Importing LiDAR Point Cloud Data

📝 Experiment Overview:
Familiarize and master the workflow of importing LiDAR point cloud data into the RflySim platform, learn how to enable the Lidar Point Cloud Support plugin in UE4.27, import .las point cloud data, generate collisions, and bake them into RflySim 3D.

Experiment 5: Importing 3D Scanned Models into RflySim

📝 Experiment Overview:
Learn the complete workflow of performing 3D scanning using iPhone/iPad LiDAR, repairing mesh defects and holes in the model using MeshLab, and finally importing the scanned model into the RflySim platform.

Experiment 6: Importing Blueprint Models into RflySim 3D

📝 Experiment Overview:
Learn to import UE blueprint models into RflySim 3D, and use the blueprint interfaces ActuatorInputs and ActuatorInputsExt to control rotor rotation and positional offsets during simulation.

Experiment 7: Converting OSGB Oblique Photography Models to 3D Tiles

📝 Experiment Overview:
Learn the complete workflow of converting OSGB models obtained from aerial photogrammetry into 3D Tiles format compatible with Cesium for Unreal, and importing them into RflySim 3D scenes.

Experiment 8: Importing Indoor 3D Scanned Scenes

📝 Experiment Overview:
Learn the complete workflow of performing indoor environment 3D scanning using LiDAR devices (iPhone/iPad), processing the models with MeshLab, and importing them into Unreal Engine.

Experiment 9: Importing Fixed-Wing Blueprint Models into RflySim

📝 Experiment Overview:
Learn how to obtain a fixed-wing blueprint model from the Unreal Engine Marketplace, import it into RflySim 3D, create ActuatorInputs and ActuatorInputsExt events within the blueprint to control aircraft control surfaces, and configure XML files.

Experiment 10: Importing Custom Animated Blueprint Models into RflySim 3D

📝 Experiment Overview:
Learn the full workflow for importing a custom animated multi-rotor blueprint model into RflySim 3D and ensuring its proper functionality. This includes 3ds Max model processing, UE4 skeletal mesh import, animation blueprint creation, event graph interface programming, and packaging/exporting the model to RflySim 3D.

Experiment 11: Bomb Explosion Effect Implementation

📝 Experiment Overview:
Learn how to create impact-triggered explosion effects in UE4, including handling the OnComponentHit collision event, spawning particle emitters, binding audio effects, and cooking/packaging the project for import into the RflySim 3D platform.

Experiment 12: Laser Hit Scanning and Effect Destruction

📝 Experiment Overview:
Introduce the classic "hitscan" logic used in game development: use RflySim custom events to drive an emitter to cast rays, detect impact points, trigger Niagara explosion effects, and destroy both the target object and the emitter itself after a delay.

3.5.4 Advanced Development Experiments

Located in the 3.RflySim3DUE\3.CustExps folder, these experiments are designed for advanced users engaged in custom development.

Experiment 1: RflySim 3D Extended Interface Usage

📝 Experiment Overview:
This experiment includes two tutorials:解除RflySim 3D局域网控制 restrictions and secondary development of weather effects. It teaches the usage of 3D scene interaction interfaces and engine scene adaptation techniques.

Experiment 2: RflySim 3D Local Area Network Control

📝 Experiment Overview:
Learn distributed multi-machine simulation in RflySim 3D over a local area network using the UDP protocol. Master techniques for toggling LAN isolation and multi-end control.

Experiment 3: Custom 3D Scene Loading in RflySim 3D

📝 Experiment Overview:
Learn the full workflow for importing a custom 3D scene into RflySim 3D, covering modeling with SketchUp, material rendering with Twinmotion, and scene construction in UE, and master methods for customizing drone simulation environments.

Experiment 4: Fixed-Wing Model Import

📝 Experiment Overview:
Explain the complete workflow for customizing and preparing a fixed-wing aircraft model in 3ds Max, importing and validating it in UE (including baking), and finally importing it along with the XML configuration file into RflySim 3D.

Experiment 5: Custom Weather Effects Integration in RflySim 3D

📝 Experiment Overview:
Learn how to add custom weather effects to RflySim 3D maps, including importing weather asset packages, configuring weather parameters, modifying materials to support rain/snow effects, and exporting and testing the scene.

??? example "Experiment

Experiment 1: Getting Started with RflySim 3D Development Tools

📝 Experiment Overview: Learn to use 3D engine development tools such as UE Blueprints, 3ds Max, Cesium for Unreal, SketchUp, and Twinmotion, and master the fundamental workflows for creating 3D models and building scenes.

Experiment 2: Using RflySim3D Scene Models

📝 Experiment Overview: Learn to view existing 3D models and scene indexes in RflySim3D, master methods for loading specified scenes and models, and learn how to use the Python interface to create obstacles within the scene.

Experiment 3: RflySim 3D Keyboard Shortcut Interaction Experiment

📝 Experiment Overview: Familiarize yourself with simple interaction methods between RflySim 3D keyboard shortcuts and different objects in the scene, including features such as help menus, data export, vehicle removal, information display/hiding, map switching, view adjustment, and vehicle model switching.

Experiment 4: RflySim 3D Console Command Interface

📝 Experiment Overview: Learn to use the RflySim 3D console command interface, and master real-time control techniques for different objects in the scene via console commands, including core functionalities such as console variables, command registration, and interactive design.

Experiment 5: RflySim 3D Initialization Script (txt) Configuration

📝 Experiment Overview: Learn to configure RflySim 3D scene startup and automatic level loading using txt scripts, including reading/writing txt files via FFileHelper and executing console commands via IConsoleManager to rapidly deploy and initialize simulation scenes.

Experiment 6: RflySim Vehicle 3D Model Adjustment Interface Experiment

📝 Experiment Overview: Bind actuator components and achieve motion-level control of UAV 3D models via XML configuration files and Python/Simulink interfaces, and learn the application of forward kinematics in 3D visualization.

Experiment 7: UE Map Object and Terrain Matching Control

📝 Experiment Overview: This experiment covers RflySim3D scene map setup and teaches how to achieve high-fidelity object-terrain elevation matching via keyboard shortcuts, Python interfaces, and MATLAB/Simulink, including target creation, trajectory generation, and dynamic object-terrain interaction functions.

Experiment 8: RflySim 3D Scene Control Interface Experiment

📝 Experiment Overview: Learn to use the UE4CtrlAPI Python library to control the RflySim 3D simulation environment, including common interface functions such as sending commands, updating UAV states, retrieving object information, and scene interaction.

Experiment 9: RflySim3D GIS Service Interface Experiment

📝 Experiment Overview:
Familiarize yourself with methods for importing high-precision global large scenes using Cesium and performing 3D simulation with arbitrarily specified aircraft GPS start coordinates.

Experiment 10: Common Effect Interfaces in RflySim3D

📝 Experiment Overview:
Learn implementation methods for communication effects, virtual pipelines, explosion effects, roller compactor motion, VTOL wing control, and weather management in RflySim3D. Master techniques for 3D scene interaction and effect generation via Python APIs interfacing with UE4.

Experiment 11: Collision Detection in RflySim3D

📝 Experiment Overview:
Learn the principles of collision detection in the RflySim platform. Master methods for receiving collision messages via Python API and CopterSim, covering three experimental scenarios: ground collisions, static object collisions, and aircraft collisions.

Experiment 12: Custom 3D Scene Construction in RflySim

📝 Experiment Overview:
Learn how to construct repeatable and version-controllable custom 3D simulation scenes within the RflySim 3D toolchain. Master script-based (JSON/Python) configuration methods for scene elements including terrain, objects, lighting, cameras, and entities.

Experiment 13: Actuator Binding

📝 Experiment Overview:
Learn how to configure actuator binding relationships via XML files, using the AttatchToOtherActuator tag to achieve mutual attachment between actuator components, demonstrating hierarchical binding of 8-degree-of-freedom actuators.

Experiment 14: High-Precision Large Scene Import and GPS Binding in Cesium

📝 Experiment Overview:
Familiarize yourself with importing high-precision large scenes and binding arbitrary GPS start coordinates to 3D simulation; verify coordinate consistency between RflySim 3D and ground stations (QGC)/Mavlink.

Experiment 15: UAV Communication Effects

📝 Experiment Overview:
Learn to create communication effects between UAVs in RflySim 3D, master the usage of the sendUE4ExtAct API and communication effect parameter settings (vehicleType=802), including attribute configuration such as effect style and duration.

Experiment 16: RflySim3D Startup Script Auto-Loading

📝 Experiment Overview:
Learn to make RflySim 3D automatically load the RflySim 3D.txt script file and execute console commands upon startup, mastering operations such as map switching and frame rate setting.

Experiment 17: RflySim3D Keyboard Shortcut Target Creation and Terrain Matching

📝 Experiment Overview:
Learn to quickly create objects in RflySim 3D using keyboard shortcuts (O key + ClassID), and by modifying the CenterHeightAboveGroundCm attribute in the XML configuration file, make the bottom of the created target fit the ground, achieving object-terrain matching.

Experiment 18: UE Blueprint Programming Basics

📝 Experiment Overview:
Learn the blueprint system of the Unreal Engine, master the basics of UE blueprint programming by creating blueprint classes and controlling objects for rotation and circular motion.

Experiment 19: RflySim3D Python Interface Control

📝 Experiment Overview:
Learn to control the RflySim 3D scene through the Python interface, implementing operations such as sending commands, updating UAV states, and attaching UAVs. Master the usage of functions like sendUE4Cmd, sendUE4ExtAct, and sendUE4PosNew in the UE4CtrlAPI library.

Experiment 20: RflySim 3D Console Command Operations

📝 Experiment Overview:
Learn to control objects such as aircraft, maps, and cameras in the scene in real-time through the RflySim 3D console command interface, including operations like text display, script loading, model adjustment, and position setting.

Experiment 21: Python Acquisition of 3D Scene Aircraft/Object/Camera Information

📝 Experiment Overview:
Learn to obtain information about aircraft, scene objects, and cameras in RflySim3D through the Python interface, mastering the basic process of requesting and receiving data from RflySim3D.

Experiment 22: 3ds Max Basic Modeling Experiment

📝 Experiment Overview:
Master basic 3ds Max modeling operations, including creating cubes, splitting and merging models, and exporting FBX files to UE.

Experiment 23: Multi-Dimensional Actuator Binding Control Experiment

📝 Experiment Overview:
By modifying the XML configuration file to copy existing actuators and set attachment relationships, achieve control of actuators exceeding 8 dimensions (16 dimensions), verifying the actuator extension method for multi-motor UAVs.

Experiment 24: RflySim3D bat Script Model Loading

📝 Experiment Overview:
Learn to quickly set up RflySim 3D scenes using bat scripts and Python scripts. By automatically running the UEImportScript.py file to send model position information to the scene, load objects such as characters and targets.

Experiment 25: RflySim 3D Map Script Control

📝 Experiment Overview:
Learn to use TXT scripts to make RflySim 3D automatically execute control commands when entering a specific map, enabling automatic scene creation and log reuse functionality.

Experiment 26: Python Target Creation and Ground Fitting

📝 Experiment Overview:
Learn to create target models in the RflySim 3D scene using Python, and adjust object coordinates to make the bottom fit the ground.

Experiment 27: RflySim3D Pipeline Creation Experiment

📝 Experiment Overview:
Learn to create pipelines in RflySim 3D, mastering methods for setting pipeline appearance types (circular/square), position, scale, color, and transparency.

Experiment 28: Model Scene Enumeration and Export

📝 Experiment Overview:
Understand how to enumerate 3D models and scenes in the RflySim platform, learn to export ModelData.csv and MapData.csv data, and master methods for configuring UAV models and map scenes using CSV data.

Experiment 29: BatAPI Batch Script Scene Configuration

📝 Experiment Overview:
Master the usage of command-line parameters in the RflySim 3D platform. Quickly switch scenes and set simulation runtime properties using batch scripts, including -cmd initialization commands and -key shortcut key configurations.

Experiment 30: Cesium for Unreal 3D Globe Development

📝 Experiment Overview:
Learn to install and configure the Cesium for Unreal plugin in UE, import Cesium ion's earth imagery and terrain data, and load the white-box building model of Chicago, USA, mastering the method of creating a geographically accurate virtual earth in Unreal Engine.

Experiment 31: EastBomberSU24 Explosion Effect Control

📝 Experiment Overview:
Learn to control aircraft explosion effects in RflySim 3D, master the usage of the UE4CtrlAPI's sendUE4Pos and sendUE4ExtAct interfaces, and trigger explosion effects using both Python and Simulink methods.

Experiment 32: RflySim3D Loading Models via TXT

📝 Experiment Overview:
Learn to use the RflyLoad 3DFile interface to create and move objects by reading a TXT file, mastering 3D scene interaction methods.

Experiment 33: Python Experiment for Creating Ground-Fitting Objects

📝 Experiment Overview:
Learn to use the sendUE4Pos and sendUE4Pos2Ground interfaces to measure scene terrain height and create ground-fitting objects at corresponding positions.

Experiment 34: Vehicle Binding Simulation

📝 Experiment Overview:
Learn to use Simulink/Python to send the VehicleAttach25 structure to RflySim 3D, achieving binding and relative motion relationships between multiple UAVs, and master the differences and applications of the four attachment modes (0-3).

Experiment 35: MATLAB Terrain Interaction Interface

📝 Experiment Overview:
Learn to obtain terrain elevation and call RflySim 3D command control interfaces through MATLAB interface functions, including loading terrain png height maps, obtaining height values at specified coordinates, and setting camera perspectives.

Experiment 36: RflySim 3D Roller Compactor Control

📝 Experiment Overview:
Learn to create a roller compactor vehicle model in the RflySim 3D scene and control vehicle movement by sending commands via Python or Simulink, including an engineering vehicle movement control experiment.

Experiment 37: SketchUp 3D Modeling Introduction

📝 Experiment Overview:
Familiarize yourself with the SketchUp editing interface and basic operations, master the process of building simple 3D models, laying the foundation for subsequent complex model scene construction.

Experiment 38: RflySim3D Object Trajectory Control Experiment

📝 Experiment Overview:
Use the Python interface to call the sendUE4Pos function, cyclically sending UDP position information to create dynamic moving objects, achieving 3D scene interaction control.

Experiment 39: RflySim3D Vehicle Binding Experiment

📝 Experiment Overview:
Use the Python interface sendUE4Attatch to achieve binding and attachment relationships between multiple vehicles in RflySim3D, learning the VehicleAttatch25 structure definition and configuration methods for the four binding modes.

Experiment 40: StandardVtol Vertical Takeoff and Landing Wing Vehicle Experiment

📝 Experiment Overview:
Learn how to create a vertical takeoff and landing wing vehicle in the RflySim 3D scene, implement VTOL vehicle control demonstrations using both Python and Simulink, and master the usage of key APIs such as sendUE4PosNew and sendUE4ExtAct.

Experiment 41: Simulink Terrain-Fitting Trajectory Generation

📝 Experiment Overview:
Learn to obtain terrain height map matrices in MATLAB for mountain scenes, use Simulink modules to generate various models that fit the ground motion, and master single-model control methods for 3D scene interaction interfaces.

Experiment 42: Twinmotion Operation Introduction

📝 Experiment Overview:
Learn to install Twinmotion and familiarize yourself with its editing interface, master the model import and export process, including SKP model import, material modification, and export in .tm and .datasmith formats, ultimately used for custom scene creation on the RflySim platform.

Experiment 43: RflySim 3D UDP Communication Interface Test

📝 Experiment Overview:
Verify the interface for controlling RflySim 3D through UDP communication between Simulink and Python, mastering real-time communication and 3D scene interaction methods.

Experiment 44: Epic Fab Asset Download and Usage

📝 Experiment Overview:
Learn to download and manage Unreal Engine assets through the Epic Fab platform, mastering the operational methods for registering an account, downloading assets, and importing them into the Unreal library.

Experiment 45: RflySim3D Viewport Perspective Control

📝 Experiment Overview:
Learn to use the Python API to control the observation perspective in RflySim 3D, including camera position, angle, FOV adjustment, and functions like switching between god's-eye view and follow view via keyboard shortcuts.

Experiment 46: Multi-Model Terrain-Fitting Trajectory Generation

📝 Experiment Overview:
Obtain terrain height map matrices via MATLAB, generate multiple models that fit the terrain motion in Simulink, achieving multi-UAV formation terrain-following flight.

Experiment 47: RflySim3D Weather Control

📝 Experiment Overview:
Learn to control weather in RflySim 3D through the Python interface, master the use of the ClassID 804 weather controller and the 16-dimensional blueprint interface, achieving weather switching effects such as clear, cloudy, and rainy.

Experiment 48: RflySim3D Laser Explosion Effect Control

📝 Experiment Overview:
Learn to import custom 3D models and scene resources into the RflySim 3D platform, master the method of using Python scripts to call UE4 interfaces to achieve UAV coordinate transmission, laser triggering, and explosion effect control.

Experiment 49: RflySim 3D Model Explosion Effect Control

📝 Experiment Overview:
Send extended outputs to RflySim 3D via the Python API sendUE4ExtAct, trigger model explosion effects and observe interaction results, learning the control method for binding EXT PWM bits with effects.

Experiment 50: Multi-Object Terrain-Fitting Trajectory Generation

📝 Experiment Overview:
Obtain terrain height maps via MATLAB and generate multi-object motion trajectories that fit the ground in Simulink, achieving differentiated motion control of heterogeneous models in mountain scenes.

Experiment 51: RflySim 3D Label Message Display

📝 Experiment Overview:
Demonstrate sending display label (Label) messages to RflySim 3D via Python, creating and controlling aircraft/character labels and custom messages in the simulation for observing and debugging the simulation scene and communication flow.

Experiment 52: Vehicle Fleet Circular Trajectory Control

📝 Experiment Overview:
Learn to generate a ground-fitting vehicle fleet circular formation motion in a mountain scene using Simulink, mastering the method of using MATLAB to obtain terrain height map matrices and controlling 10 vehicles to achieve a circular trajectory.

Experiment 53: RflySim3D Object Position Acquisition

📝 Experiment Overview:
Obtain the position and collision data of dynamic objects in the RflySim 3D scene through the Python interface, verifying state acquisition and collision detection logic.

3.5.2 Basic Usage Experiments

Stored in the 3.RflySim3DUE\1.BasicExps folder, this section provides a complete set of supplementary teaching materials for beginners.

Experiment 1: RflySim 3D Basic 3D Scene Import Experiment

📝 Experiment Overview: Import UE4/UE5 default scenes into the RflySim platform, and become familiar with the workflow of baking scenes in the UE engine and importing them into RflySim 3D and CopterSim.

Experiment 2: Loading Custom Multirotor Models in RflySim 3D

📝 Experiment Overview: Learn how to import custom multirotor 3D models based on XML and static meshes into RflySim 3D, mastering the core workflow involving 3ds Max model processing, UE baking, and XML configuration.

Experiment 3: Terrain Point Cloud Elevation Reading in RflySim3D

📝 Experiment Overview: Learn to acquire terrain data by scanning 3D scenes in RflySim 3D, and master the use of Python interfaces to compute terrain elevation and point cloud information, enabling reading, visualization, and saving of terrain point cloud data.

Experiment 4: Importing UE4 Default Scenes into RflySim 3D

📝 Experiment Overview: Familiarize yourself with the workflow of baking scenes in UE4 and importing them into RflySim 3D and CopterSim; learn to create UE projects, bake scenes, import resources, generate heightmaps, and coordinate multi-simulation platforms.

Experiment 5: Importing PNG Images into RflySim3D

📝 Experiment Overview: Learn to import images directly into the RflySim3D platform without using the UE editor, master rapid loading and display of Aruco calibration boards, and understand the RflySim3D custom object loading mechanism and core functions of UE4CtrlAPI.

Experiment 6: Importing UE5 Scenes into RflySim

📝 Experiment Overview: Familiarize yourself with the workflow of baking scenes in UE5 and importing them into RflySim 3D and CopterSim; master terrain file generation and map switching methods.

Experiment 7: Runtime GLB Model Import in RflySim

📝 Experiment Overview: Learn to use Datasmith Runtime in RflySimUE5 to directly import GLB 3D models at runtime without using the UE editor; master mapping ClassIDs to UE blueprints, enabling dynamic loading of external models without re-packaging the project.

Experiment 8: UE Material Usage Guidelines

📝 Experiment Overview: Learn material usage in UE 4.27 and UE 5.2, including material reference checks, Nanite support configuration, material creation, editing, application, and optimization to prevent material loss upon importing into RflySim 3D.

Experiment 9: Rapid Import of 3D Models and XML in RflySim 3D

📝 Experiment Overview: Learn how to import FBX 3D models and their accompanying XML configuration files into RflySim 3D, and use Python scripts to automatically load models in designated scenes, enabling custom obstacle generation.

Experiment 10: UE Scene Origin Setting

📝 Experiment Overview: Demonstrate how to temporarily and permanently adjust the pivot point of static mesh actors in small indoor/architectural scenes, precisely aligning objects to the world origin (0,0,0), and using grid alignment and snapping tools for accurate placement.

Experiment 11: Custom Scene Import in RflySim

📝 Experiment Overview:
Learn to build reproducible and version-controllable custom 3D simulation scenes within the RflySim 3D toolchain, and master methods for creating, importing, and parameterizing obstacles.

3.5.3 Advanced Development Experiments

Stored in the 3.RflySim3DUE\2.AdvExps folder, these experiments further familiarize users with certain low-level firmware ecosystem configurations.

Experiment 1: Importing Twinmotion Scenes into RflySim Platform

📝 Experiment Overview:
Learn the complete workflow of importing Twinmotion scenes into UE4 using the Datasmith plugin, baking them, and integrating them into the RflySim 3D and CopterSim platforms.

Experiment 2: Importing and Simulating Blueprint Models in RflySim

📝 Experiment Overview:
Learn to import multi-rotor, fixed-wing, and animated blueprint models into the RflySim 3D simulation platform, master the principles of 3D model skeleton binding, blueprint animation construction, and the technique of controlling custom models via the ActuatorInputs interface.

Experiment 3: Building Large-Scale Global Scenes Using Cesium

📝 Experiment Overview:
Learn the workflow of converting aerial survey OSGB models into 3D Tiles format using CesiumLab and importing them into RflySim 3D, and master the usage of extended GIS service interfaces.

Experiment 4: Importing LiDAR Point Cloud Data

📝 Experiment Overview:
Familiarize and master the workflow of importing LiDAR point cloud data into the RflySim platform, learn how to enable the Lidar Point Cloud Support plugin in UE4.27, import .las point cloud data, generate collisions, and bake them into RflySim 3D.

Experiment 5: Importing 3D Scanned Models into RflySim

📝 Experiment Overview:
Learn the complete workflow of performing 3D scanning using iPhone/iPad LiDAR, repairing mesh defects and holes in the model using MeshLab, and finally importing the scanned model into the RflySim platform.

Experiment 6: Importing Blueprint Models into RflySim 3D

📝 Experiment Overview:
Learn to import UE blueprint models into RflySim 3D, and use the blueprint interfaces ActuatorInputs and ActuatorInputsExt to control rotor rotation and positional offsets during simulation.

Experiment 7: Converting OSGB Oblique Photography Models to 3D Tiles

📝 Experiment Overview:
Learn the complete workflow of converting OSGB models obtained from aerial photogrammetry into 3D Tiles format compatible with Cesium for Unreal, and importing them into RflySim 3D scenes.

Experiment 8: Importing Indoor 3D Scanned Scenes

📝 Experiment Overview:
Learn the complete workflow of performing indoor environment 3D scanning using LiDAR devices (iPhone/iPad), processing the models with MeshLab, and importing them into Unreal Engine.

Experiment 9: Importing Fixed-Wing Blueprint Models into RflySim

📝 Experiment Overview:
Learn how to obtain a fixed-wing blueprint model from the Unreal Engine Marketplace, import it into RflySim 3D, create ActuatorInputs and ActuatorInputsExt events within the blueprint to control aircraft control surfaces, and configure XML files.

Experiment 10: Importing Custom Animated Blueprint Models into RflySim 3D

📝 Experiment Overview:
Learn the full workflow for importing a custom animated multi-rotor blueprint model into RflySim 3D and ensuring its proper functionality. This includes 3ds Max model processing, UE4 skeletal mesh import, animation blueprint creation, event graph interface programming, and packaging/exporting the model to RflySim 3D.

Experiment 11: Bomb Explosion Effect Implementation

📝 Experiment Overview:
Learn how to create impact-triggered explosion effects in UE4, including handling the OnComponentHit collision event, spawning particle emitters, binding audio effects, and cooking/packaging the project for import into the RflySim 3D platform.

Experiment 12: Laser Hit Scanning and Effect Destruction

📝 Experiment Overview:
Introduce the classic "hitscan" logic used in game development: use RflySim custom events to drive an emitter to cast rays, detect impact points, trigger Niagara explosion effects, and destroy both the target object and the emitter itself after a delay.

3.5.4 Advanced Development Experiments

Located in the 3.RflySim3DUE\3.CustExps folder, these experiments are designed for advanced users engaged in custom development.

Experiment 1: RflySim 3D Extended Interface Usage

📝 Experiment Overview:
This experiment includes two tutorials:解除RflySim 3D局域网控制 restrictions and secondary development of weather effects. It teaches the usage of 3D scene interaction interfaces and engine scene adaptation techniques.

Experiment 2: RflySim 3D Local Area Network Control

📝 Experiment Overview:
Learn distributed multi-machine simulation in RflySim 3D over a local area network using the UDP protocol. Master techniques for toggling LAN isolation and multi-end control.

Experiment 3: Custom 3D Scene Loading in RflySim 3D

📝 Experiment Overview:
Learn the full workflow for importing a custom 3D scene into RflySim 3D, covering modeling with SketchUp, material rendering with Twinmotion, and scene construction in UE, and master methods for customizing drone simulation environments.

Experiment 4: Fixed-Wing Model Import

📝 Experiment Overview:
Explain the complete workflow for customizing and preparing a fixed-wing aircraft model in 3ds Max, importing and validating it in UE (including baking), and finally importing it along with the XML configuration file into RflySim 3D.

Experiment 5: Custom Weather Effects Integration in RflySim 3D

📝 Experiment Overview:
Learn how to add custom weather effects to RflySim 3D maps, including importing weather asset packages, configuring weather parameters, modifying materials to support rain/snow effects, and exporting and testing the scene.

Experiment 6: CityEngine Urban Scene Creation

📝 Experiment Overview:
Construct a 3D urban scene model using CityEngine and CGA rules, based on geographic information (imagery and elevation data) and road/building information (vector data).

Experiment 7: Performance Comparison of RflySim 3D Collision Detection Modes

📝 Experiment Overview:
Understand the data feedback principles of different collision modes in RflySim 3D, compare the performance overhead between P1 and P3 collision detection modes, and verify the impact of collision modes on large-scale swarm simulations using WorldTick time consumption.

Experiment 8: RflySim 3D Complete GIS Service

📝 Experiment Overview:
This experiment covers CityEngine building scene construction, multi-level imagery white edge removal, and Cesium offline large-scene deployment. It teaches GIS-related services and secondary development methods in RflySim 3D.

Experiment 9: Multi-Level Imagery Overlap White Edge Processing

📝 Experiment Overview:
Learn multi-level imagery overlap processing using two GIS software tools—Global Mapper and ArcGIS—and master key technologies such as image registration, edge detection, and image fusion to eliminate white edge occlusion in tiled data.

Experiment 10: Cesium Offline Large-Scene Deployment

📝 Experiment Overview:
Learn how to configure Cesium offline scenes in RflySim 3D, including tiling TIFF data using Cesiumlab, deploying Nginx as a proxy to publish data, and integrating the offline map plugin into Unreal Engine.

Experiment 11: CityEngine CGA Rule-Based Building Modeling

📝 Experiment Overview:
Learn to use CityEngine software to programmatically generate 3D building models via CGA rule files, and master methods for creating projects, importing rule assets, generating street networks, and constructing building models.

Experiment 12: Custom Scene Creation Using SketchUp + Twinmotion

📝 Experiment Overview:
Learn to model a villa scene in SketchUp, import it into Twinmotion via the Datasmith plugin for high-fidelity material rendering, add dynamic effects and lighting in Unreal Engine, bake the scene, and finally import it into the RflySim 3D platform.

Experiment 13: Fixed-Wing Static Mesh Model Import

📝 Experiment Overview:
This experiment teaches how to import a custom fixed-wing aircraft model (e.g., MQ-9 Reaper) from 3ds Max into RflySim 3D, covering the complete workflow including aircraft coordinate system alignment, fuselage and actuator grouping, center of gravity positioning, model export, and XML configuration.

Experiment 14: CityEngine Urban Scene Creation

📝 Experiment Overview:
Learn to use Esri CityEngine software to construct a 3D urban model using CGA rules based on geographic information (imagery and elevation data) and road/building vector data, and export it for use in engines such as UE.

Experiment 15: Custom Blueprint Model Import

📝 Experiment Overview:
Learn the complete workflow for processing the MQ-9 Reaper fixed-wing aircraft model through 3ds Max, developing UE animation blueprints, and importing it into RflySim 3D. Master the configuration and control methods for custom models in RflySim.

Experiment 16: Importing Twinmotion Scenes into RflySim Platform

📝 Experiment Overview:
Learn the complete workflow of importing Twinmotion scenes into UE5 via the Datasmith plugin for scene processing and baking, and finally importing them into the RflySim 3D and CopterSim platforms.