{"id":13600099,"url":"https://github.com/hkrn/nanoem","last_synced_at":"2026-01-18T12:18:13.077Z","repository":{"id":37857669,"uuid":"99402790","full_name":"hkrn/nanoem","owner":"hkrn","description":"nanoem is an MMD (MikuMikuDance) compatible implementation and its like cross-platform application mainly built for macOS.","archived":false,"fork":false,"pushed_at":"2025-04-08T02:12:55.000Z","size":27302,"stargazers_count":320,"open_issues_count":9,"forks_count":43,"subscribers_count":6,"default_branch":"main","last_synced_at":"2025-04-10T21:38:17.107Z","etag":null,"topics":["cpp","mikumikudance","mmd","nanoem"],"latest_commit_sha":null,"homepage":"https://nanoem.rtfd.io","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hkrn.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.MIT","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":"2017-08-05T06:00:16.000Z","updated_at":"2025-04-10T20:22:03.000Z","dependencies_parsed_at":"2024-11-07T02:37:10.474Z","dependency_job_id":"496c7af9-af72-4e1c-b52b-e941caa7028b","html_url":"https://github.com/hkrn/nanoem","commit_stats":null,"previous_names":[],"tags_count":17,"template":false,"template_full_name":null,"purl":"pkg:github/hkrn/nanoem","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hkrn%2Fnanoem","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hkrn%2Fnanoem/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hkrn%2Fnanoem/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hkrn%2Fnanoem/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hkrn","download_url":"https://codeload.github.com/hkrn/nanoem/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hkrn%2Fnanoem/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28535625,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-18T10:13:46.436Z","status":"ssl_error","status_checked_at":"2026-01-18T10:13:11.045Z","response_time":98,"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":["cpp","mikumikudance","mmd","nanoem"],"created_at":"2024-08-01T18:00:26.140Z","updated_at":"2026-01-18T12:18:12.747Z","avatar_url":"https://github.com/hkrn.png","language":"C","funding_links":[],"categories":["C"],"sub_categories":[],"readme":"# nanoem\n\n[![Build Status](https://github.com/hkrn/nanoem/workflows/CI/badge.svg)](https://github.com/hkrn/nanoem/actions) [![Documentation Status](https://readthedocs.org/projects/nanoem/badge/?version=latest)](https://nanoem.readthedocs.io/ja/latest/?badge=latest) [![License: MPL 2.0](https://img.shields.io/badge/License-MPL%202.0-blue.svg)](https://opensource.org/licenses/MPL-2.0) [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT)\n\nnanoem is an [MMD (MikuMikuDance)](https://sites.google.com/view/vpvp/) compatible implementation and its like application mainly built for macOS.\n\n- [All Releases](https://github.com/hkrn/nanoem/releases)\n- [Usage Manual](https://nanoem.readthedocs.io) (Japanese)\n\n## Screenshot\n\n![nanoem for macOS](docs/images/application/screen_v340_small.png)\n\n## Background and Design Concept\n\nMikuMikuDance (a.k.a MMD) is created on Windows via DirectX9. As such, it's unavailable to run on non-Windows deployment unless you use a virtual machine or emulation layer such as Wine.\n\nnanoem was originally created to address the issue of non-Windows compatibility as well as the possibility it may not work in the future due to Windows reason. It was originally designed for macOS but now it's now designed to run on non-macOS as well and supports ARM CPU such as Apple M1 and RaspberryPi, multiple graphics backends (DirectX11/Metal/OpenGL).\n\nIt also has model editing feature similar to PMXEditor's one which allows for some model editing. This was also implemented for the same reason mentioned above.\n\nnanoem is designed to achieve both of the following goals.\n\n* Portability\n* Lightweight startup\n* Small size\n\n## How to build?\n\n### Prerequisites\n\n- [cmake](https://cmake.org) (\u003e= 3.5)\n- C++14 compliant compiler\n  - confirmed on Clang and Visual Studio 2017\n- [git](https://git-scm.com)\n- [ninja-build](https://ninja-build.org/)\n  - Optional but recommend on macOS/Linux\n\n### Minimum build instruction\n\nSee also [GitHub Action Workflow](.github/workflows/main.yml).\n\n```bash\ngit submodule update --init --recursive\n\n# needs setting NANOEM_TARGET_COMPILER explicitly when the compiler is clang (default is gcc on Linux)\nexport NANOEM_TARGET_COMPILER=clang\ncmake -P scripts/build.cmake\nmkdir out\ncd out\ncmake -G Ninja ..\ncmake --build .\n\n# OpenGL 3.3 Core Profile or higher is required to run on Linux\ncd sapp \u0026\u0026 ./nanoem\n```\n\n\u003cdetails\u003e\n\u003csummary\u003eOptions Table of scripts/build.cmake\u003c/summary\u003e\n\n|Name|Description|\n|---|---|\n|`NANOEM_TARGET_ARCHITECTURES`|Target architectures to build. The default value is `x86_64` (non macOS) or `ub` (means Universal Binary, macOS).|\n|`NANOEM_TARGET_CONFIGURATIONS`|Target configurations for cmake. The default value is `debug;release`.|\n|`NANOEM_TARGET_MACOS_VERSION`|Target macOS version. Same as [CMAKE_OSX_DEPLOYMENT_TARGET](https://cmake.org/cmake/help/latest/variable/CMAKE_OSX_DEPLOYMENT_TARGET.html).|\n|`NANOEM_TARGET_GENERATOR`|Target generator for cmake. The option will pass as `cmake -G ${NANOEM_TARGET_GENERATOR}`|\n|`NANOEM_TARGET_COMPILER`|Target compiler for cmake.|\n|`NANOEM_TARGET_TOOLSET`|Target toolset for cmake. The option will pass as `cmake -T {NANOEM_TARGET_TOOLSET}`|\n|`NANOEM_MAKE_PROGRAM`|Make program to use for cmake. Same as [CMAKE_MAKE_PROGRAM](https://cmake.org/cmake/help/latest/variable/CMAKE_MAKE_PROGRAM.html).|\n|`NANOEM_DISABLE_BUILD_NANOMSG`|Disable building [nanomsg](https://nanomsg.org/).|\n|`NANOEM_DISABLE_BUILD_TBB`|Disable building [Threading Building Blocks](https://www.intel.com/content/www/us/en/developer/tools/oneapi/onetbb.html).|\n|`NANOEM_ENABLE_BUILD_ICU4C`|Enable building [ICU](https://github.com/unicode-org/icu/). You must run following command `git clone https://github.com/unicode-org/icu/ dependencies/icu` before enabling the option.|\n|`NANOEM_ENABLE_BUILD_MIMALLOC`|Enable building [mimalloc](https://github.com/microsoft/mimalloc).|\n|`NANOEM_ENABLE_BUILD_SPIRV_TOOLS`|Enable building [SPIRV-Tools](https://github.com/KhronosGroup/SPIRV-Tools).|\n|`NANOEM_ENABLE_BUILD_SENTRY_NATIVE`|Enable building [Sentry C/C++ SDK](https://github.com/getsentry/sentry-native).|\n|`NANOEM_ENABLE_BUILD_LIBSOUNDIO`|Enable building [libsoundio](http://libsound.io). You must run following command `git clone https://github.com/andrewrk/libsoundio dependencies/libsoundio` before enabling the option.|\n|`NANOEM_ENABLE_BUILD_GLFW`|Enable building [GLTF](https://www.glfw.org). You must run following command `git clone https://github.com/glfw/glfw dependencies/libsoundio` before enabling the option.|\n|`NANOEM_ENABLE_BUILD_FFMPEG`|Enable building [ffmpeg](http://ffmpeg.org). You must run following command `git clone https://github.com/ffmpeg/ffmpeg dependencies/ffmpeg` before enabling the option.|\n|`NANOEM_ENABLE_BUILD_YAMLCPP`|Enable building [yaml-cpp](https://github.com/jbeder/yaml-cpp). You must run following command `git clone https://github.com/jbeder/yaml-cpp dependencies/yaml-cpp` before enabling the option.|\n\n\u003c/details\u003e\n\n## Architecture\n\nSee [Architecture Document](docs/architecture.rst) (Japanese)\n\n## About License\n\n- nanoem component is licensed under [MIT/X11 License](LICENSE.MIT).\n- emapp/win32/macos/glfw/sapp components are licensed under [Mozilla Public License](LICENSE.MPL).\n\n## Contributors\n\n\u003ca href=\"https://github.com/hkrn/nanoem/graphs/contributors\"\u003e\n  \u003cimg src=\"https://contributors-img.web.app/image?repo=hkrn/nanoem\" /\u003e\n\u003c/a\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhkrn%2Fnanoem","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhkrn%2Fnanoem","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhkrn%2Fnanoem/lists"}