muxp files - nofaceinbook/muxp GitHub Wiki

Muxp files are text files defining the mesh changes for a dsf file containing the mesh for a one by one degree tile. The definitions are organized as yaml configurations.

At minimum the following keys are required:

  • muxp_version: This float type is identifying the version of muxp used for this muxp files. This will allow future versions of muxp to handle older definitions. Current version is 0.1.
  • id: A string with unique id of the muxp file. This id is also stored in the updated dsf files and thus allows to see what changes have been performed for that updated mesh.
  • version: This is the version of the mesh update for that muxp file id. Has to be float but is Independent from muxp_version.
  • tile: This is the one by one grid tile definition with latitude and longitude as it is used for the dsf files e.g. +50-001
  • area: This specifies the corner coordinates of the area that will be adapted as 4 float values (lower latitude, higher latitude, lower longitude, higher longitude). This area is extraced, adpated by muxp and inserted again in the dsf file. So make sure that all your changes are within this area.

Optional keys:

  • source_dsf: This allows to define for which scenery pack this MUXP file should be used for. It could include several packs separated by whitespace. The preferred can be specified by ‘DEFAULT’ (for default X-Plane mesh) or by pack=scenery_pack_name. In case the name should not match completely ‘’ can be used and all after this asterisk must be included in the pack name at any position (e.g. use _pack=Ortho4XP_ in case your MUXP file is working for Ortho4XP dsf files.
  • description: This string allows you to give some more details an the changes.
  • author: Allows you to add you as an author for that fiel (type string).
  • elevation_step: Allows you to set the “resolution” of elevation that will be used for dsf file in float format. Default is 0.05 (in meter) if nothing is defined, which is usually enough, except you have an extremely curved runway like in Courchevel where 0.01 is appropriate. In case you don’t need any submeter elevation for your mesh you could also set it to 1 which is default X-Plane value. The lower the step the more accuracy for you mesh but the more memory needed for your dsf file.

Everything after '#' is interpreted as a comment.

Then following commands are supported:

  • "cut_polygon" : ["coordinates"], --> cuts polygon defined by coordinates in mesh, usually has also value elevation to assigned to all vertices inside polygon
  • "cut_ramp" : ["coordinates", "3d_coordinates"], --> cuts polygon in mesh, wehre elevation of vertices is taken from plane assigned by three * 3d_coordinates
  • "cut_flat_terrain_in_mesh" : ["coordinates", "terrain", "elevation"], --> cuts a flat polygon with elevation and given terrain (currently only simple terrain fromat without s/t coordinates)
  • "cut_spline_segment" : ["3d_coordinates", "terrain", "width", "profile_interval"], --> used to create a runway profile defined by spline through 3d_coordinates
  • "update_network_levels" : ["coordinates", "road_coords_drapped"], --> you could change elevation levels for roads (but very difficult to apply and explain)
  • "limit_edges" : ["coordinates", "edge_limit"], --> all triangle edges of mesh inside polygon will not be longer than limitg after this command was executed
  • "update_raster_elevation" : ["coordinates", "elevation"], --> In case elevation of mesh is defined by raster (like default XP), than you could set all raster squares in polygon to that elev.
  • "update_raster4spline_segment" : ["3d_coordinates", "width"], --> simiilar, like cut_spline but applying elevation changes to the raster instead to vertices directly
  • "update_elevation_in_poly": ["coordinates", "elevation"], --> sets alle vertices inside polygon to given elevation
  • "extract_mesh_to_file": ["coordinates"], --> extracts mesh inside polygon to a .obj file to be eg. imported in blender (only physical mesh, no overlays! and no texture exported)
  • "insert_mesh_from_file": ["coordinates", "terrain"], --> imports mesh from .obj file (only elevation mesh that will be set to the defined simple terrain (no s/t coordinates))
  • "exit_without_update": [] --> exit muxp without changing dsf, especially used when just exporting parts to .obj file and not applying changes
  • "unflatten_default_apt": [name] --> in case default airport in global airports.dat with ICAO code defined by name has flatten flag set, this is removed