Kokon
Nano Banana와 Generative Fill을 대신할 수 있는 무료 로컬 대안
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 README에서 읽을 수 있습니다. 저장소 README ↗
README 전체를 불러오는 중입니다.
README 전문 보기 ↗A browser-based tool for creating animated device mockup renders. Load a custom screenshot or video onto a 3D iPhone or MacBook model, set keyframes, and export as a PNG, PNG sequence, or WebM video — all client-side, no server required.
index.html loads Three.js, lil-gui, and JSZip from a local vendor/ directory (gitignored). Populate it once by downloading the files from jsDelivr:
| File | URL |
|---|---|
vendor/three.module.min.js | cdn.jsdelivr.net/npm/[email protected]/build/three.module.min.js |
vendor/three-addons/ | cdn.jsdelivr.net/npm/[email protected]/examples/jsm/ (only the addons you need) |
vendor/lil-gui.esm.js | cdn.jsdelivr.net/npm/[email protected]/dist/lil-gui.esm.js |
vendor/jszip.min.js | cdn.jsdelivr.net/npm/[email protected]/dist/jszip.min.js |
Then serve the directory:
npx serve .
# or
python3 -m http.server
Tip: if you don't need the multi-file version, just open
standalone.html— it loads everything from CDN and requires no vendor setup.
Run the build script to produce a self-contained standalone.html with both 3D models embedded as base64:
node build.js
Open standalone.html directly in a browser — no server needed.
| Control | Action |
|---|---|
| Left-drag | Orbit camera |
| Right-drag / two-finger drag | Pan |
| Scroll | Zoom |
| Shift + scroll | Scroll screen content |
Use the GUI panel (top-right) to upload media, adjust transforms, configure animation, and trigger exports.
When a Middle keyframe is set, a single easing curve is applied to the full timeline parameter t before the segment split. The motion is therefore fastest at the midpoint (where the eased t crosses 0.5) and slowest at the start and end — producing a "spin through the middle, decelerate into the end" feel.
The easing selection in the GUI governs the whole arc. cubic (ease-in-out) is recommended for three-keyframe animations.
Known limitation: because each segment is still a linear interpolation, a directional kink can occur at the Middle keyframe if the two displacement vectors differ in direction (e.g. a rotation axis change). This is a geometric discontinuity, not a speed one, and is most visible when the two motion directions are very different.
To eliminate the directional kink entirely, interpolateKeyframes in js/utils.js should be upgraded to use Catmull-Rom spline interpolation:
t, evaluate the cubic Hermite curve defined by the four control points.(end − start) / 2 in normalised time, giving C1 continuity (smooth velocity vector through every keyframe).t before passing it to the spline evaluator.This is the standard approach used in professional animation tools (After Effects, Blender graph editor, etc.) and would make the Middle keyframe feel like a true waypoint rather than a corner.
Implementation scope: interpolateKeyframes in js/utils.js only — no changes to callers.