{"id":13600102,"url":"https://github.com/recp/AssetKit","last_synced_at":"2025-04-10T21:31:08.498Z","repository":{"id":17016779,"uuid":"80915592","full_name":"recp/AssetKit","owner":"recp","description":"🎨 Modern 2D/3D - Importer • Exporter • Util - Library, also  known as (AssetIO)","archived":false,"fork":false,"pushed_at":"2025-04-05T10:55:25.000Z","size":3258,"stargazers_count":193,"open_issues_count":6,"forks_count":18,"subscribers_count":14,"default_branch":"main","last_synced_at":"2025-04-09T20:08:52.303Z","etag":null,"topics":["3d","3d-asset","3d-engine","3d-exporter","3d-graphics","3d-importer","3d-loader","3d-models","animation","collada","coords-sys","dae","gltf","material","mesh","mesh-import","mesh-normals","polygons","texture","triangulate-polygons"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/recp.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","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},"funding":{"github":["recp"],"patreon":"recp","open_collective":"assetkit","ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"lfx_crowdfunding":null,"custom":null}},"created_at":"2017-02-04T11:40:00.000Z","updated_at":"2025-04-06T17:04:18.000Z","dependencies_parsed_at":"2023-10-17T03:01:27.577Z","dependency_job_id":"1c51b2c2-41a5-4d4a-b346-114f98af3b18","html_url":"https://github.com/recp/AssetKit","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/recp%2FAssetKit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/recp%2FAssetKit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/recp%2FAssetKit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/recp%2FAssetKit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/recp","download_url":"https://codeload.github.com/recp/AssetKit/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248103872,"owners_count":21048245,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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","3d-asset","3d-engine","3d-exporter","3d-graphics","3d-importer","3d-loader","3d-models","animation","collada","coords-sys","dae","gltf","material","mesh","mesh-import","mesh-normals","polygons","texture","triangulate-polygons"],"created_at":"2024-08-01T18:00:26.278Z","updated_at":"2025-04-10T21:31:08.470Z","avatar_url":"https://github.com/recp.png","language":"C","readme":"\u003cp align=\"center\"\u003e\n   \u003cimg alt=\"\" src=\"assetkit.png\" width=\"550\" /\u003e\n\u003c/p\u003e\n\u003cbr\u003e\n\n\u003cp align=\"center\"\u003e\n    \u003ca href=\"https://github.com/recp/AssetKit/actions/workflows/c-cpp.yml\"\u003e\n        \u003cimg src=\"https://github.com/recp/AssetKit/actions/workflows/c-cpp.yml/badge.svg\"\n             alt=\"C/C++ CI\"\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://github.com/recp/AssetKit/actions/workflows/cmake.yml\"\u003e\n        \u003cimg src=\"https://github.com/recp/AssetKit/actions/workflows/cmake.yml/badge.svg\"\n             alt=\"CMake\"\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://github.com/recp/AssetKit/actions/workflows/msbuild.yml\"\u003e\n        \u003cimg src=\"https://github.com/recp/AssetKit/actions/workflows/msbuild.yml/badge.svg\"\n             alt=\"MSBuild\"\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://www.codacy.com/app/recp/assetkit?utm_source=github.com\u0026amp;utm_medium=referral\u0026amp;utm_content=recp/assetkit\u0026amp;utm_campaign=Badge_Grade\"\u003e\n        \u003cimg src=\"https://api.codacy.com/project/badge/Grade/6edde2ba446148759437eb0148c799b6\"\n             alt=\"Codacy Badge\"/\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://coveralls.io/github/recp/assetkit?branch=master\"\u003e\n        \u003cimg src=\"https://coveralls.io/repos/github/recp/assetkit/badge.svg?branch=master\"\n             alt=\"Coverage Status\"/\u003e\n    \u003c/a\u003e\n    \u003cimg src=\"https://img.shields.io/badge/glTF-2%2E0-green.svg?style=flat\"\n         alt=\"glTF Badge\"\u003e\n    \u003cbr /\u003e\u003cbr /\u003e\n    \u003ca href=\"https://patreon.com/recp\"\u003e\n      \u003cimg src=\"https://img.shields.io/badge/Patreon-Become a patron-orange.svg\"\n           alt=\"Patreon: Become a patron\"\u003e\n    \u003c/a\u003e\n    \u003ca href=\"#sponsors\"\u003e\n        \u003cimg src=\"https://opencollective.com/assetkit/sponsors/badge.svg\"\n             alt=\"Sponsors on Open Collective\"/\u003e\n    \u003c/a\u003e\n    \u003ca href=\"#backers\"\u003e\n        \u003cimg src=\"https://opencollective.com/assetkit/backers/badge.svg\"\n             alt=\"Backers on Open Collective\"/\u003e\n    \u003c/a\u003e\n\u003c/p\u003e\n\n\u003cbr\u003e\n\n\u003cp align=\"center\"\u003e\nBrand-new modern 3D asset importer, exporter library. This library will include common 3D utils funcs. It is written with C99 but C++ wrappers or other language bindings can be written in the future.\n\nThis library will try to full support COLLADA specs and glTF specs, plus well-known other 3D formats e.g .obj, .stl, .ply... \n\n📌 There is also an optional renderer library called [Graphics Kernel (Realtime Rendering)](https://github.com/recp/libgk) and [rays (Path/Ray Tracer)](https://github.com/recp/rays) which can render **AssetKit** contents. You can see how to load **AssetKit** to [Graphics Kernel](https://github.com/recp/libgk) in [AssetKit-GL](https://github.com/recp/assetkit-gl) repo. Both renderers and documentation with samples will be updated regularly...  \n\n\u003c/p\u003e\n\n#### 📚 Documentation (In Progress)\n\nAlmost all functions (inline versions) and parameters will be documented inside the corresponding headers. \u003cbr /\u003e\nComplete documentation: http://assetkit.readthedocs.io\n\n## 💪 Supported Formats\n\n* [ ] Asset Exchange (todo) http://github.com/AssetExchange/spec\n* [x] COLLADA 1.4 and COLLADA 1.4.1\n* [x] COLLADA 1.5\n* [x] glTF 2.0 (Embedded or Separated (.gltf), Binary (.glb), Extensions...)\n* [x] Wavefront Obj (.obj + .mtl)\n* [x] STL (ASCII, Binary)\n* [x] PLY (ASCII, Binary)\n* [ ] 3MF (in progress)\n* [ ] FBX (License?, probably need to download FBX SDK externally)\n* [ ] USD and friends (License?)\n* [ ] Alembic (License?)\n* [ ] Draco\n* [ ] X3D\n* [x] in progress for next...\n* [ ] Exporter\n\n## 🚀 Features\n\n- Single interface for glTF 2.0 (with extensions), COLLADA 1.4/1.4.1/1.5, Wavefront Obj and others...\n- Very very small and very fast library\n- Javascript-like API to get URL or ID `obj = ak_getObjectById(doc, objectId)`...\n- Options to Generate Mesh Normals *(Default: enabled)*\n- Option to Triangulate Polygons *(Default: enabled)*\n- Option to change Coordinate System *(Default: enabled)*\n- Option to calculate Bounding Boxes *(Default: enabled)*\n- Unique and Flexible Coordinate System\n  - Support multiple coordinate system\n  - Can convert any coordinate system to another with adding transform or with changing transform, vertex data...\n- Unique and Flexible Memory Management System\n  - Hierarchical unique memory management\n    - When a node is freed then all sub memories will be freed\n  - COLLADA's **sid** and **ID** values are mapped to memory nodes itself to reduce memory size and make it easy to manage things.\n  - Allow attach ID, sid or user data to a memory node\n- Object-based Asset support; resolve asset element for any element\n- Bugfix some DAE files\n- Will be optimized to be fastest, smallest and most flexible, extendible Asset loader.\n- Uses **mmap** to load files, you can disable this if needed\n- [ ] Documentation\n- [x] Cmake support\n- [ ] Tests\n\n## 🔨 Build\n\n### CMake (All platforms)\n```bash\n$ mkdir build\n$ cd build\n$ cmake .. # [Optional] -DAK_SHARED=ON\n$ make\n$ sudo make install # [Optional]\n```\n\n##### Cmake options with Defaults:\n\n```CMake\noption(AK_SHARED \"Shared build\" ON)\noption(AK_STATIC \"Static build\" OFF)\noption(AK_USE_TEST \"Enable Tests\" OFF) # for make check - make test\n```\n\n#### Use with your CMake project\n* Example:\n```cmake\ncmake_minimum_required(VERSION 3.8.2)\n\nproject(\u003cYour Project Name\u003e)\n\nadd_executable(${PROJECT_NAME} src/main.c)\ntarget_link_libraries(${LIBRARY_NAME} PRIVATE assetkit)\n\nadd_subdirectory(external/assetkit/)\n\n# or you can use find_package() to configure assetkit\n```\n\n### Unix (Autotools)\nStep 1: First you should build dependencies, do this only once:\n```bash\n$ sh ./build-deps.sh\n```\n\nStep 2: Build, Test and Install AssetKit\n```bash\n$ sh autogen.sh\n$ ./configure\n$ make\n$ make check\n$ [sudo] make install\n```\n\nStep 3: Change install name if required, after make finished make automaticall runs `sh ./post-build.sh` script. It changes install names. You may want to edit build scripts and `post-build.sh` script if you want to build AssetKit with existing libraries. Default behavior is that AssetKit will look up sub libraries inside `.libs` folder, if you only need to change `.libs` name then change it in `post-build.sh` script file.\n\n### Windows (MSBuild)\nWindows related build files, project files are located in `win` folder, make sure you are inside `assetkit/win` folder. Code Analysis are enabled to it may take awhile to build\n\n`git` and `python` commands should be installed/accessible.\n\n```Powershell\n$ cd win\n$ .\\build.bat\n$ msbuild assetkit.vcxproj /p:Configuration=Release\n```\nif `msbuild` won't work correctly then try to build with `devenv`:\n```Powershell\n$ devenv assetkit.sln /Build Release\n```\n\n## Contributors\n\nThis project exists thanks to all the people who contribute. [[Contribute](CONTRIBUTING.md)].\n\u003ca href=\"https://github.com/recp/assetkit/graphs/contributors\"\u003e\u003cimg src=\"https://opencollective.com/assetkit/contributors.svg?width=890\u0026button=false\" /\u003e\u003c/a\u003e\n\n\n## Backers\n\nThank you to all our backers! 🙏 [[Become a backer](https://opencollective.com/assetkit#backer)]\n\n\u003ca href=\"https://opencollective.com/assetkit#backers\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/assetkit/backers.svg?width=890\"\u003e\u003c/a\u003e\n\n\n## Sponsors\n\nSupport this project by becoming a sponsor. Your logo will show up here with a link to your website. [[Become a sponsor](https://opencollective.com/assetkit#sponsor)]\n\n\u003ca href=\"https://opencollective.com/assetkit/sponsor/0/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/assetkit/sponsor/0/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/assetkit/sponsor/1/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/assetkit/sponsor/1/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/assetkit/sponsor/2/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/assetkit/sponsor/2/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/assetkit/sponsor/3/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/assetkit/sponsor/3/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/assetkit/sponsor/4/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/assetkit/sponsor/4/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/assetkit/sponsor/5/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/assetkit/sponsor/5/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/assetkit/sponsor/6/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/assetkit/sponsor/6/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/assetkit/sponsor/7/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/assetkit/sponsor/7/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/assetkit/sponsor/8/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/assetkit/sponsor/8/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/assetkit/sponsor/9/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/assetkit/sponsor/9/avatar.svg\"\u003e\u003c/a\u003e\n\n\n### Trademarks\n\nglTF and COLLADA and their logos are trademarks of Khronos Group.\n","funding_links":["https://github.com/sponsors/recp","https://patreon.com/recp","https://opencollective.com/assetkit"],"categories":["Game Programming","C","游戏编程"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frecp%2FAssetKit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frecp%2FAssetKit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frecp%2FAssetKit/lists"}