{"id":29484059,"url":"https://github.com/nesktf/assimp-lua","last_synced_at":"2026-02-21T07:42:40.934Z","repository":{"id":304573839,"uuid":"1019185249","full_name":"nesktf/assimp-lua","owner":"nesktf","description":"LuaJIT bindings for Assimp using the builtin FFI","archived":false,"fork":false,"pushed_at":"2025-07-14T00:02:50.000Z","size":8,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-10-23T17:44:26.303Z","etag":null,"topics":["3d-models","assimp","fennel","ffi-bindings","luajit","luajit-ffi-bindings"],"latest_commit_sha":null,"homepage":"","language":"Fennel","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nesktf.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-07-13T23:31:47.000Z","updated_at":"2025-07-14T00:03:55.000Z","dependencies_parsed_at":"2025-07-14T01:31:26.685Z","dependency_job_id":"9993c50f-23f3-4abc-b947-2cab3b2efe60","html_url":"https://github.com/nesktf/assimp-lua","commit_stats":null,"previous_names":["nesktf/assimp-lua"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/nesktf/assimp-lua","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nesktf%2Fassimp-lua","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nesktf%2Fassimp-lua/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nesktf%2Fassimp-lua/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nesktf%2Fassimp-lua/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nesktf","download_url":"https://codeload.github.com/nesktf/assimp-lua/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nesktf%2Fassimp-lua/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29676840,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-21T06:23:40.028Z","status":"ssl_error","status_checked_at":"2026-02-21T06:23:39.222Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["3d-models","assimp","fennel","ffi-bindings","luajit","luajit-ffi-bindings"],"created_at":"2025-07-15T04:20:57.919Z","updated_at":"2026-02-21T07:42:40.908Z","avatar_url":"https://github.com/nesktf.png","language":"Fennel","funding_links":[],"categories":[],"sub_categories":[],"readme":"# assimp\nLuaJIT bindings for the [Open-Asset-Importer-Library](https://www.assimp.org), using the\nbuiltin FFI.\n\nTested on ASSIMP 5.2.5 from the Debian 12 repos, may or may not work on other versions.\n\n## Instalation\nYou need to have installed both LuaJIT and ASSIMP. On Debian:\n```sh\n$ sudo apt install luajit libassimp-dev\n```\n\nAdd the repo path to your fennel `package.path`, or compile the source files running the makefile\nand then add them to your lua `package.path`. If you want, you can also install the\nlibrary using luarocks\n```sh\n$ make build # Compile the fennel files\n$ make install # Install locally using luarocks\n```\n\n## Usage\nJust `require` the library and run `import_file` you can use either\nthe gc or nogc version. You have to free the scene if you use the nogc one.\n\n```lua\nlocal assimp = require(\"assimp\")\n\nlocal scene, err = assimp.import_file(\"my_funny_model.gltf\")\nlocal scenenogc = assimp.import_file_nogc(\"my_other_funny_model.obj\", 0) -- Can pass import flags\n-- Do things...\nassimp.release_import(scenenogc)\n```\n\nOr if you are using fennel\n```fennel\n(local assimp (require :assimp))\n(local (scene err) (assimp.import_file \"my_funny_model.gltf\"))\n(local scenenogc (assimp.import_file_nogc(\"my_other_funny_model.obj\" 0)))\n;; Do things...\n(assimp.release_import scenenogc)\n```\n\nYou can access the scene object just like a regular `Assimp::Importer` C++ object. Most methods\nshould be available using `snake_case` identifiers, other members keep the same name.\n\nKeep in mind that `aiString` objects have to be converted to Lua strings using `ffi.string`.\n\n```lua \nif (scene:has_meshes()) then\n    local koishi_hat = scene.mMeshes[0]\n    local name = ffi.string(koishi_hat.mName.data, koishi_hat.mName.length)\n    print(string.format(\"Mesh name: %s\\n\", name))\nend\n```\n\nIf you are using fennel\n```fennel \n(when (scene:has_meshes)\n  (let [koishi-hat (. scene.mMeshes 0)\n        name (ffi.string koishi-hat.mName.data koishi-hat.mName.length)]\n    (print (string.format \"Mesh name: %s\\n\" name))))\n```\n\n## TODO\n- Assimp enums\n- Implement all object methods\n- Tests\n- Utility functions?\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnesktf%2Fassimp-lua","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnesktf%2Fassimp-lua","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnesktf%2Fassimp-lua/lists"}