Skip to content

GhostRoboticsLab/blender-i3d-importer

Β 
Β 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

58 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Blender i3d Importer

The first and only Blender add-on that imports Farming Simulator 22 & 25 .i3d files directly β€” full scene, materials, textures, ready for editing, re-export-clean to the official Giants i3d Exporter.

πŸ“– New here? Read the Wiki for the full guide: installation, the import/export workflow, the N-panel tools and preferences, all with screenshots.

No external extraction tool, no command-line gymnastics: the .i3d.shapes binary is decoded natively in Python. Geometry, splines, skin weights, lights, cameras, references, notes, terrain β€” everything that ships in an FS22/FS25 i3d file becomes proper Blender datablocks you can inspect, modify, and (mostly) round-trip back into the Giants Editor through the Giants i3d Exporter.

Watch it in action

i3d Importer trailer i3d Importer tutorial

β–Ά Trailer Β· Tutorial

What it can do

Geometry & hierarchy

  • Full scene tree: meshes, materials, textures, lights, cameras, splines, reference nodes (with patch for the exporter), also terrain!
  • Native Python decoder for .i3d.shapes v7 / v9 / v10 (no external tool required)
  • Shared meshes are split up into individuals + merged back upon export
  • Skin weights for vehicle-implement bones - verified in-game. Joints round-trip back to their original place in the scenegraph via a shared armature + "Child Of" constraints (a leftover empty zzz_armature group can be deleted in the Giants Editor after import)
  • Tree import - full FS25 trees: detailed trunk (LOD0) and the leaf/branch attachments (LOD0Attachments), with a seasonal leaf debug material and a Tree Season switch (Summer/Autumn/Winter/Spring)
  • Optional scenegraph order preservation - adds a sort-order name prefix so the Giants Exporter reproduces the original Giants Editor node order on re-export (toggle in preferences / the import dialog)
  • Merge groups & merge-children splitting
  • Splines (open and closed)
  • Heightmap-based terrain as a Plane + Displace modifier (terrain as preview only, not exportable, see Known limitations)

Materials β€” two flavors per i3d material

  • Re-export material β€” clean round-trip with the Giants Exporter, preserves every <CustomParameter> and <Custommap> and also options on the shape
  • PBR debug material (optional) β€” visually mimics the Giants Editor look, with editable sliders for vehicle brand colors, multitints, clear coat, scratches/dirt/snow/wetness, parallax, etc.
  • Pair-aware: switch any mesh between debug and re-export material with a click; changes to debug sliders can be synced back to the export material before re-export
  • Multiple imports in the same scene possible β€” per-import UUIDs disambiguate materials that share material_id across files

UV, vertex data, custom properties

  • UV1, UV2, UV3, UV4 channels
  • Corner vertex colors
  • Every i3d attribute (visibility, weather masks, navMesh masks, collision flags, clip distance, ...) survives as a Blender custom property β€” re-export-ready

Smart path resolution

  • $data/... resolved against the configured FS25 game folder
  • DDS preferred over PNG when both exist
  • $-substitution also works for terrain heightmap files

Axis correction & visibility

  • Optional Y-up β†’ Z-up bake at import
  • Auto-hide objects flagged visibility="false" or nonRenderable="true" (matches the Giants Editor render-view behavior)

Store configurations & wheels (preview) β€” new in 0.5

  • Store Config panel β€” load a vehicle/placeable config XML and switch its store configurations right in Blender, like in the in-game shop: designs, motor variants, attacher options, folding presets, solar panels on buildings, and more. Object changes are applied game-exact (visibility, translation/rotation/scale, including one-sided changes that fall back to the node's original state) plus per-option material swaps.
  • Configuration sets β€” the shop's preset chooser (e.g. working-width presets) pins all controlled sub-configurations at once.
  • Wheels β€” wheel configurations load the real tires, rims, hubs and wheel weights from the shared tire/rim files, resolved exactly like the game does it (baseConfig inheritance, per-wheel overrides, dimension-generated configs, direct-filename wheels). Includes tire-brand selection per configuration and a None button that removes all loaded wheel parts again β€” the cleanest state for a re-export, since the game loads wheels dynamically anyway.
  • Twin wheels β€” additional wheels including their discs and both connector types (rimDual cage and hubDual clamps), with the connector geometry baked shader-exact.
  • Shader-exact rims β€” the FS rim shader sizes and dishes every rim procedurally from a widthAndDiam parameter; the preview bakes that deformation into the mesh (and Prepare for Export restores the pristine mesh + writes the parameter onto the export material, so GE and the game deform it themselves).
  • Rim color preview β€” recolor rims/weights per the vehicle's rimColor configurations; painting follows the shapes-file material slot names, so parts that stay black in-game stay black here too.
  • Known gap: the color configurations (base/design color palettes incl. the generated default colors) have no picker yet β€” coming as the next feature block.

N-panel workflow tools (N in the 3D viewport, tab "i3d Importer")

  • Material Switch β€” toggle the selected meshes between debug and re-export materials
  • FS25 Material Settings β€” sliders for every material parameter of the active debug material, plus a Sync to Export Material button that copies the slider values back to the paired export material's custom Parameter properties (required before re-export)
  • FS25 Debug View β€” overlay masks or vertex colors on the active material for inspection
  • FS25 Snow + Ice β€” show/hide all snow/icicle meshes; reminds you to un-hide them before re-export
  • FS25 Invisible GE-objects β€” show/hide all objects that were auto-hidden because they are invisible in the Giants Editor (e.g. collision volumes); reminds you to un-hide them before re-export
  • Tree Season - for imported trees, switch the seasonal leaf debug look (Summer / Autumn / Winter / Spring); appears only when a tree-branch material is present in the scene
  • i3dMappings - load a vehicle/placeable config XML and assign its <i3dMapping> ids to the imported objects, then view and edit a node's Mapping ID (written so the Giants exporter picks it up on re-export); also fills the exporter's XML Config Files list so you only pick the file once
  • Store Config (preview) - after loading the config XML: switch store configurations, load wheel configurations with tire brand and rim color, apply configuration-set presets; Show All Config Parts and Default Config reset buttons included
  • Prepare for Export - one click gets the scene export-ready: shows snow/GE-invisible parts, resets the config preview, restores pristine (un-baked) wheel meshes, switches everything to the re-export materials and writes the rim/connector shader parameters onto them

Convenience after import

  • Viewport switches to Material Preview shading
  • All imported objects are framed (Numpad-.-equivalent)
  • Clip-end is bumped to 10000 when an imported object is larger than 500 units (whole maps no longer disappear behind the default far clip)
  • prefills Game path & export path in the Giants id3 exporter so you don't have to set it every time

Requirements

  • Blender 5.1 or newer
  • Farming Simulator 25 (or FS22) installed locally β€” needed to resolve $data/... texture and shader paths. The add-on never modifies your game files.
  • Operating system: Windows is regularly tested and supported. Linux and macOS should work in principle since the decoder is pure Python and the add-on has no native binaries, but they are untested β€” please open an issue if you try them.
  • Optional: the Parallax Node Extension for true parallax occlusion mapping in debug materials (a simpler bump-mapping fallback is used otherwise)

Installation

Drag & Drop (recommended)

  1. Download the latest blender_i3d_importer.zip from the Releases page.
  2. Open Blender.
  3. Drag the .zip file from your file manager onto the Blender window.
  4. Confirm the install prompt.

Via Preferences

  1. Download the latest blender_i3d_importer.zip from the Releases page.
  2. In Blender, Edit β†’ Preferences β†’ Add-ons.
  3. Click the dropdown arrow in the top-right β†’ Install from Disk...
  4. Select the downloaded .zip file.
  5. Enable the add-on by ticking the checkbox next to its name.

First-time setup

  1. Edit β†’ Preferences β†’ Add-ons β†’ find i3d Importer.
  2. Expand its preferences. They are grouped in three sections:
    • Paths β€” set FS25 game data folder to your FS25 installation root (the folder that contains the data/ subfolder). Optionally set Re-export output folder.
    • Import Defaults β€” defaults for the per-import operator options (axis correction, auto-hide, debug materials, etc.).
    • Terrain β€” default LOD, base color for the terrain preview, and the comma-separated list of <CombinedLayer> names to load (up to 5; default covers ASPHALT, GRASS, MUD, FOREST_LEAVES, FOREST_GRASS).

How to use

File β†’ Import β†’ Farming Simulator i3d (.i3d)

In the import dialog you can override per-import options that default from the add-on preferences (axis correction, auto-hide, debug materials, terrain LOD, base color, layer names).

After import, the 3D viewport sidebar (press N) offers the i3d Importer tab with the workflow panels listed under N-panel workflow tools.

Read the Wiki for the full user guide. Or watch the β–ΆTutorial video:

i3d Importer tutorial

Round-trip via the Giants i3d Exporter

The re-export materials are designed to round-trip cleanly through the official Giants i3d Exporter for Blender. Two optional patches against the Giants exporter ship in blender_i3d_importer/patches/ and fix the following issues in the exporter:

  1. KeyError: 'i3D_referenceChildPath' on ReferenceNodes (most vehicles and many buildings have these)
  2. Every re-exported material gets emissiveColor="1 1 1 1" even when the original had none β€” a default-value bug in the exporter

See blender_i3d_importer/patches/README.md for application steps (a few-line edit in two files of the exporter, detailed instructions included).

i3dMappings (vehicle / placeable config)

Vehicle and placeable config XMLs reference nodes in the i3d through an <i3dMappings> block, which lives in the XML, not in the i3d. After import, open the i3dMappings box in the i3d Importer tab, click Load Config XML, and pick the matching vehicle.xml / placeable.xml: the importer assigns each mapping id to the right object and fills the exporter's XML Config Files list. You can then view and edit a node's Mapping ID in the same box - this works around a Giants exporter bug on Blender 5.1+ where the exporter's own field cannot set a custom id. See the i3dMappings wiki page.

Before re-export: click Prepare for Export (top of the i3d Importer tab) β€” it un-hides snow/GE-invisible parts, resets the store-config preview, restores the pristine wheel meshes, switches every imported mesh to its re-export material and writes the rim/connector shader parameters. In detail, that covers what used to be manual steps:

  • If you used the Material Settings sliders, click Sync to Export Material so the changes are persisted on the export materials.
  • If you used the Snow + Ice or Invisible GE-objects hide toggles, un-hide them β€” the Giants Exporter writes visibility="false" to the XML based on the Outliner eye state.
  • If you used the Material Switch to Debug, switch back to Export (debug materials carry extra preview nodes that are not round-trip-clean).
  • If you loaded wheels just for the preview, click None in the Wheels section first β€” the game loads wheels dynamically at runtime, so an export without them avoids duplicate static wheels and keeps the <i3dMappings> index paths identical to the original XML.

Known limitations

  • Terrain is one-way. The Giants Blender Exporter cannot emit a <TerrainTransformGroup>. The terrain mesh is for in-Blender preview / backgroundMesh-snapping only. The importer prints a WARNING in the log when terrain is loaded.
  • Reference-node recursion. Sub-i3ds referenced by a node are not loaded automatically; they remain as empties with the original i3D_referenceFilename custom property. The Giants exporter writes them back correctly on re-export, but only if you apply the referenceChildPath-patch (see above).
  • Skinned-mesh armature leftover. Re-exporting a skinned mesh leaves one empty armature transform group in the scenegraph (the Giants exporter does not collapse armatures). It is harmless and can be deleted in the Giants Editor; the joints themselves round-trip to their original place via "Child Of" constraints.
  • i3dMappings on bones are not assigned. When you load a config XML, mappings that target a skinned bone/joint (rare) are not assigned to any object; the importer lists them in a warning so nothing is lost silently. All mappings that target regular objects, including merge-group members, are assigned.
  • Color configurations have no picker yet. Base/design color palettes (including the game-generated default colors and useBaseColor references) are not offered in the Store Config panel yet β€” planned as the next feature block.
  • Merge groups bound to distant nodes. A rare merge-group pattern whose bind nodes live elsewhere in the tree (e.g. the detached coupler hoses on some sprayers) is not distributed yet and clumps at the origin; the game replaces those visuals at runtime anyway.

License and attribution

  • This add-on β€” GPL-3.0-or-later. See LICENSE.
  • .i3d.shapes decoder β€” Python port of the C# logic from I3DShapesTool by Donkie, MIT-licensed. See NOTICE for the full attribution.

Author

Nadine Brinkmann β€” YouTube

If this add-on saves you time or unlocks a workflow you could not do before, a star on the repo or a comment on the channel is appreciated.

You can also support the project here: https://ko-fi.com/nadinebrinkmann

About

Blender add-on for importing Farming Simulator 25 .i3d files with all details such as materials, primary and secondary UVs, vertex colors and custom shader properties. Includes both re-exportable and PBR-ready debug materials to get the full material look also in Blender (dirt, moss, snow overlays, additional surface details, clear coat...).

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages