3D models are missing in 3D viewer after updating to V6

You created a project in KiCad 5. You updated to KiCad 6, opened your old design, and now the 3D models are missing in the 3D viewer.

KiCad embeds every footprint that your project uses into the board file. Each footprint stores a path to its 3D model(s).

Paths to 3D models typically use a variable which expands to a real path. In KiCad 6, the 3D model path variable is ${KICAD6_3DMODEL_DIR}, which is set to the 3D model library location. In prior versions of KiCad, the corresponding variable was ${KISYS3DMOD}.

Therefore, boards created in KiCad 5 have footprints from the v5 libraries embedded in them. The embedded footprints, in turn, point to their 3D models using the ${KISYS3DMOD} variable.

That variable is not defined in KiCad 6, so KiCad can’t find the models.

There are at least two options to solve the problem:

  1. Update the footprints in your board to match the updated footprints in the V6 library, which have the v6 paths in them that tell KiCad where to find the models. You will have to do this for each board you have.

    • You can update all of your models in a board at once with the menu item Tools → Update Footprints from Library…, although this will overwrite any footprint customizations you’ve made in the board.
    • You can also go into the properties of each footprint one-by-one and click “Update Footprint from Library”.
  2. To automatically fix the issue for all boards, without updating any footprints, you can go into Preferences → Configure Paths… and define the “missing” variable so that it points somewhere where the models will be found. You can either define ${KISYS3DMOD} and point it to the same place as ${KICAD6_3DMODEL_DIR}, or, if you want to maintain separate libraries for v5 and v6, you can point your ${KISYS3DMOD} variable to your v5 library location. [this is the reason that new, v6-specific variables were introduced: so you can maintain two separate libraries, if you want]