SpinningMomo: a photography and recording tool for Infinity Nikki
《无限暖暖》游戏摄影与录像工具。 Infinity Nikki Game Photography and Recording Tool.
At a glance
- What is it?
- SpinningMomo is a Windows desktop tool for players of Infinity Nikki that resizes the game window for vertical shots, captures screenshots and recordings beyond the native resolution, and ships with a browsable photo gallery. The core is C++ with a Vue interface over WebView2, built with xmake and pnpm.
- Who is it for?
- SpinningMomo is a sensible choice for players who want portrait framing, higher resolution captures than the game offers, and an indexed library of their shots rather than a folder of loose screenshots, and for recording the same title on other windowed games.
- Can I use it commercially?
- Yes, with conditions. GPL-3.0 is a copyleft licence: if you distribute software that includes it, you must release that software's source code under the same licence. Running it internally without distributing it does not trigger that obligation.
- Is it still maintained?
- Yes. The repository last received commits 4 days ago.
- What is it written in?
- Mainly C++, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on October 25, 2026, and from our analysis. They are not legal advice.
Editorial analysis
What SpinningMomo does for Infinity Nikki players
Infinity Nikki is a dress-up game, and dressing up is a photography problem as much as a fashion one. SpinningMomo is a companion tool built around that idea, and the README lists its scope in four points.
The first is a one click switch of the game window ratio and size, aimed at portrait composition and at browsing the in-game album. A game that insists on a landscape frame forces vertical shots to be composed inside a wide letterbox, which is precisely the constraint portrait oriented outfits do not need.
The second point is the claim that breaks the native limits and supports 8K to 12K screenshots and recordings. The game renders at a resolution it chooses, and a capture tool that renders the window larger can keep more detail in the output file than a straight copy of the framebuffer.
The third point is the built-in photo gallery. The README describes automatic indexing of photos and videos, with tags, ratings, a timeline, colour filtering and batch organisation. That is the part that turns a capture tool into an archive: without it, screenshots accumulate as timestamped files that are painful to search later.
The fourth point sets the scope honestly. The tool is tuned for Infinity Nikki, and it also works with most other games that run in a windowed mode. This is a Windows desktop application rather than a game mod, which is what lets it capture other titles.
A C++ core with a Vue interface over WebView2
The repository topics give the shape of the project: cpp23, vue, webview2 and infinity-nikki.
That combination explains a good deal about the design. The native work, capturing frames, driving the window resize and reading image files, sits in a C++23 core under src/. The user interface is a web frontend in a web directory, built with Vue, and it is rendered through the WebView2 runtime that ships with Windows. The topics list infinity-nikki alongside the technical ones because the tool carries specific knowledge about how that game presents its window.
The repository layout confirms the split and adds a few things worth knowing. There is an android directory and matching build scripts, so an Android build exists alongside the Windows one even though the released binary is Windows only. The installer directory and scripts hold the packaging work, docs holds the documentation site, and resources holds assets.
The xmake.lua file and xmake-requires.lock make xmake the C++ build system, while the web side is a pnpm workspace. The two build systems are joined by npm scripts that run one after another, which is why the package.json file is worth reading in full before you touch the build.
Building from source with xmake and pnpm
The README does not give a build command inline. It links to a build guide hosted at spin.infinitymomo.com under the developer path, and says the environment requirements and build steps are documented there. The npm scripts in package.json are what that guide drives.
The toolchain versions are pinned in the same file:
"engines": {
"node": ">=22.13.0"
},
"packageManager": "[email protected]",So a recent Node and the pinned pnpm release are required before anything else will work. The individual build steps are separate scripts:
"build:cpp": "xmake config -m release && xmake build && xmake config -m debug",
"build:android": "node scripts/build-android.js",
"dev:android": "node scripts/run-android.js",
"build:web": "pnpm --filter web run build",
"build:dist": "node scripts/prepare-dist.js",
"build:portable": "node scripts/build-portable.js",The C++ script configures and builds a release configuration and then switches the xmake configuration back to debug, which is why both build modes are named in one line. The web build runs inside the pnpm workspace with the web filter, and the dist and portable scripts prepare the artifacts afterwards.
For a release, one script chains the whole sequence:
"release": "pnpm run build && pnpm run build:portable && pnpm run build:installer && pnpm run build:checksums",That is the packaging story in one line: build everything, produce a portable build, produce an installer, then generate checksums. Tests exist as scenario scripts under tests/, and formatting is handled by husky and lint-staged with a clang-format configuration at the root.
Downloading releases and the code signing question
For ordinary players, the README points at two download routes: the latest GitHub release, and a Baidu netdisk link with the extraction code given in the page. A third-party mirror alongside the canonical release page is worth thinking about, because it splits trust between two places and the netdisk copy is the one you cannot verify from the release page.
The signing story is documented too, in the acknowledgements section. The README thanks SignPath.io for providing free code signing for the project, with the certificate provided by the SignPath Foundation, and it names the committer and approver as the repository owner ChanIok. Free signing for an open source project means the binary you download carries a signature, which matters for a tool that runs on your machine and touches your screenshot library.
The acknowledgements also note that NUAN5.PRO provides support for the photo data parsing service, and that the licences of the third party open source projects used by the project are listed in CREDITS.md. That parsing service is a dependency you should look at before pointing the gallery at a large personal library, because the README indicates some photo data handling is supported by an outside provider.
The project publishes its documentation at spin.infinitymomo.com, with a usage section for players and a developer section for the build.
Where SpinningMomo fits against the game and against generic capture tools
The honest alternative is the tooling you already have. The game itself can take screenshots, and a general purpose recorder or screen capture utility will record a window at whatever resolution your display and encoder support.
The difference in approach is what SpinningMomo does around the capture. It changes the game window ratio and size rather than capturing a frame as it appears, so the content is rendered in the shape you want. It goes beyond the native resolution, so the output keeps detail the game never shows on screen. And it indexes what it captures, with tags, ratings, a timeline and colour filtering, which a generic capture tool leaves as files in a folder.
For a player who wants a handful of screenshots, that difference is not worth an extra application. For someone who shoots hundreds of frames of an outfit, hunts for the best angle of a dress, and wants to find last month's shots again in February, the gallery and the ratio switching are the reasons to adopt it.
Two practical limits sit behind all of this. The capture quality depends on what the game renders and on your display, so a 12K file is not the same as twelve thousand pixels of real detail in the costume. And the window resize only applies to games that run windowed, which the README states as the compatibility condition.
Licence, maintenance and what to check before you install
SpinningMomo is released under the GPL 3.0 licence, and the README repeats that with a link to the LICENSE file and a note to read the legal and privacy statement hosted on the documentation site before use. GPL 3.0 is a copyleft licence, so if you distribute a build or a modified version you carry obligations that a permissive licence would not impose. Whether that matters to you is a question for your own legal review rather than one to answer from a README.
The privacy page matters separately from the licence. The acknowledgements mention a photo data parsing service provided by NUAN5.PRO, so a tool that indexes your screenshots is worth reading the privacy statement for before you let it scan a directory of personal images.
Maintenance looks active on the facts given. The last push was on 2026-10-18, and the release tags are v2.2.1 on 2026-10-18, v2.2.0 on 2026-09-11 and v2.1.5 on 2026-08-08. Two releases in the run up to the last push is a cadence you can plan around, and the version numbering is a conventional major.minor.patch scheme rather than a pre-1.0 marker.
Before installing, check three things. That the release you fetch is signed, since the project uses SignPath for that. That the window resize behaves correctly under your display scaling, since that is the feature the whole tool exists for. And that the privacy statement covers the photo parsing behaviour before you point the gallery at a large folder.
Editorial conclusion
SpinningMomo is a sensible choice for players who want portrait framing, higher resolution captures than the game offers, and an indexed library of their shots rather than a folder of loose screenshots, and for recording the same title on other windowed games. It is the wrong tool if you only need the occasional screenshot, since the game already has its own capture, or if you want to distribute a modified build, since the GPL 3.0 licence and the CREDITS.md file make redistribution obligations real. Verify first that the release you download is the one you need, that the window resize behaves on your display scaling, and that the photo data parsing service mentioned in the README is acceptable under your own privacy rules before you point the gallery at a large library.
Frequently asked questions
What is SpinningMomo used for?
It is a photography and recording tool for Infinity Nikki that switches the game window ratio and size, supports 8K to 12K screenshots and recordings beyond the native limits, and includes a photo gallery with tags, ratings, a timeline and colour filtering.
Can SpinningMomo capture other games?
Yes. The README states that the tool is optimised for Infinity Nikki and is also compatible with most other games that run in a windowed mode.
How do I build SpinningMomo from source?
The build guide is hosted at spin.infinitymomo.com under the developer path, and the npm scripts in package.json drive xmake for the C++ core, pnpm for the web interface and a chain of packaging scripts for the release artifacts.
What licence is SpinningMomo released under?
The project uses the GPL 3.0 licence, with the LICENSE file in the repository root and third party component licences listed in CREDITS.md.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/chaniok-spinningmomo)Was this useful?