whatisgithub

What is assimp?

assimp/assimp — explained in plain English

Analysis updated 2026-06-24

12,935C++Audience · developerComplexity · 3/5LicenseSetup · moderate

In one sentence

A C++ library that loads 3D model files in 40+ formats and converts them into one consistent in-memory format, so you don't need to write a custom importer for every file type your app might encounter.

Mindmap

mindmap
  root((assimp))
    What it does
      Load 3D models
      40 plus formats
      Geometry cleanup
    Supported Formats
      FBX OBJ GLTF
      Collada STL
    Language Bindings
      Python JavaScript
      Rust Java C
    Audience
      Game developers
      3D app builders
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Load FBX, OBJ, GLTF, or any of 40+ 3D file formats into your game engine or 3D app without writing custom parsers.

USE CASE 2

Automatically clean up and optimize imported 3D geometry with post-processing steps like triangulation and normal generation.

USE CASE 3

Use assimp from Python, JavaScript, Rust, or Java via language bindings to load 3D assets in your preferred language.

What is it built with?

C++CCMakePythonJavaScriptRustJava

How does it compare?

assimp/assimpgoogle/guetzlininja-build/ninja
Stars12,93512,93812,938
LanguageC++C++C++
Setup difficultymoderatemoderateeasy
Complexity3/52/52/5
Audiencedeveloperdeveloperdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · moderate Time to first run · 30min

Requires CMake to build from source, pre-built binaries are available for download if you prefer.

Free to use commercially including in closed-source products, include the BSD license text with your product. Static linking is explicitly permitted.

So what is it?

Open Asset Import Library, usually called assimp, is a C++ library that loads 3D model files and converts them into a single, consistent in-memory format. Instead of writing custom import code for every file type your application might encounter, you add assimp and it handles the conversion for you. It supports more than 40 different 3D file formats for import, including common ones used in games and 3D tools, and can also export to a growing number of formats. Beyond just loading files, assimp includes a set of mesh post-processing options that can automatically clean up and optimize the loaded geometry. These include generating surface normals, triangulating faces, optimizing vertex order for the graphics card, removing duplicate vertices, and merging redundant materials, among others. You can choose which steps to apply when loading a file. The library's primary interface is written in C++, with a C API also included for broader compatibility. There are official and community-maintained bindings that let you use assimp from other languages: C#, Java, Python, Pascal, Delphi, D, JavaScript (including a Node.js interface), Rust, and more. The library also runs on Android and iOS. Building the library requires CMake, a common build configuration tool. Pre-built binaries are available for download if you prefer not to compile from source. There are also plugins and integrations for Unity and Unreal Engine listed in the README. The project is open source under a modified 3-clause BSD license, which allows static linking and commercial use as long as the license text is included with the product. Community support is available via GitHub discussions, Discord, Reddit, and Stack Overflow.

Copy-paste prompts

Prompt 1
Using assimp in C++, write code to load an FBX file, apply triangulation and normal generation post-processing, and print the number of meshes and total vertex count.
Prompt 2
I'm building a Three.js web app and want to load 3D models using assimp's JavaScript bindings in Node.js. Show me how to install and use them.
Prompt 3
Using assimp's Python bindings, write a script that loads all OBJ files in a folder and exports each one as a GLTF file.
Prompt 4
I'm adding assimp to a Unity project. Walk me through using the Unity plugin to import an FBX model and access its mesh data at runtime.

Frequently asked questions

What is assimp?

A C++ library that loads 3D model files in 40+ formats and converts them into one consistent in-memory format, so you don't need to write a custom importer for every file type your app might encounter.

What language is assimp written in?

Mainly C++. The stack also includes C++, C, CMake.

What license does assimp use?

Free to use commercially including in closed-source products, include the BSD license text with your product. Static linking is explicitly permitted.

How hard is assimp to set up?

Setup difficulty is rated moderate, with roughly 30min to a first successful run.

Who is assimp for?

Mainly developer.

Open on GitHub → Ask about another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.