A tool for moving pictures and games, built from parts
Draw it. Move it. Play it.
ESKEES splits your PSDs and illustrations into parts, then adds blinking, sway, animation and logic to turn them into characters, wallpapers and small games. Publish them on showcase and anyone can play them right in the browser.
ESKEES Studio, the browser version, is opening to people on a waitlist.
What you can do
So that the person who draws can take it all the way to a game — and carry the result out in an open format.
-
Assemble parts
Bring in PSD, KRA, images, GIFs or sprite sheets and arrange layers as parts. Variants like expressions and outfits become switchable parts.
-
Animate
Timeline and easing, nulls, and a simple mesh for hair and cloth sway and wind. Blinking and lip-sync too.
-
Switch states
Keep expressions, outfits and props as states on separate axes and combine them at play time. Clicking a spot can swap an outfit.
-
Make it a game
Scripts you can write as blocks or text, tile stages, character controls and hitboxes, sound, camera and saves.
-
Export
The open EMG format (.emg) and the ESKEES extension (.eskx) that carries logic and more. GIF, APNG and WebM as well.
-
Publish
Post to showcase and people can play in the browser, with ratings and leaderboards. Or run it as your desktop wallpaper.
Join the ESKEES Studio waitlist
ESKEES Studio runs in your browser. We are letting people in from a waitlist — sign up and you will get access when your turn comes.
You sign up on the ESKEES Studio page (Google or email). Details may change without notice.
Products
-
ESKEES Studio
Pre-registration open
ESKEES in your browser. Assemble, export and publish without installing anything. We let people in from the waitlist in order.
-
ESKEES showcase
Live
The place to play works made with ESKEES. Five official samples are always there, with ratings and leaderboards.
-
ESKEES Editor
Coming soon
The desktop version of ESKEES (Windows). Everything Studio does, working directly with your local files. Not distributed at the moment.
-
ESKEES Screen
Test build
Runs your exported works as a Windows desktop wallpaper.
News
-
Showcaseを公開しました
showcase.eskees.com でeskeesのサンプルで遊ぶことができます
-
eskees.com is live
The product site is up. We are getting the Editor ready for release.
ESKEES Screen
Runs the .emg you exported as a Windows desktop wallpaper. No other software needed.
-
Nothing else to install
It draws with the OS WebView, so no browser is bundled.
-
Driven from the tray
Switch the file on show, how it fits the screen, the render resolution and the backdrop colour.
-
Fits any screen
Crop to fill, fit whole, or stretch.
-
Eco Mode
It stops animating while covered by other windows, and on battery or in power-saver mode.
- Windows 10 / 11. It renders with WebView2, which ships with Windows 11.
- Scheduled Releases for macOS Versions.
- A test build is available. If it does not work, send us eskees-screen.log from next to the executable.
For developers
EMG is an open format (Apache 2.0). You can play and import it outside ESKEES, in browsers and game engines.
-
EMG specification
Every field, and the normative documents.
-
ESKEES Player (CDN)
One script tag and <eskees-player> put a .eskx on your site — scripts and physics included.
-
CDN player
Two script tags put a .emg on any web page.
-
Viewer
Open a .emg and inspect its parts, layers and atlas.
-
Importers
Bring .emg into Unity, Godot, Ren'Py and YMM4.
-
Browser packer
Drop in a PSD and get a .emg.
Use it from a CDN
Two script tags and a URL. No build step, no bundler.
<div id="layerContainer"></div>
<!-- JSZip(必須依存。.emg は ZIP なので展開に要る) -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/jszip/3.7.1/jszip.min.js"></script>
<!-- EMG Player -->
<script src="https://pxrllc.github.io/emg/emg-player.0.3.0.js"></script>
<script>
EMGPlayer.loadEmgFromCDN('https://example.com/avatar.emg');
</script>
- JSZip is required. A .emg is a ZIP, so it is needed to unpack it. Load it first.
- It renders into #layerContainer by default. For another element, pass loadEmgFromCDN(url, 'myContainer').
- The result arrives on window as emg:loaded / emg:error.
- The .emg may live on another origin, but it must allow CORS — it is fetched.
Drive it from the host
EMGPlayer.setFrame(partID, frame) | Pick the visible frame of a switch part |
EMGPlayer.showPart(partID, shown) | Show or hide a part |
EMGPlayer.setPartPlaying(partID, playing) | Stop or resume a part |
EMGPlayer.setBlinkState(state) | Blink (requires mapping.json) |
EMGPlayer.setViseme(v) | Lip sync (same) |
EMGPlayer.setExpression(name) | Expression (same) |
EMGPlayer.setPreset(id) | Switch several parts at once (0.5.0 §5) |
It is currently served from the public repository's GitHub Pages. If it moves under eskees.com, the versioned URLs will be kept.
EMG specification
The normative documents live in the public repository, pxrllc/emg.
-
EMG 0.5.6
Current (pre-stable) (JA)
Every field, with the version that introduced it and where it is specified.
There is exactly one source of truth: the public repository. Nothing is mirrored here — these are links to the original. EMG is an open format under Apache 2.0; ESKEES is a product that writes it.
Changelog
-
eskees.com is live
The product site is up. We are getting the Editor ready for release.
-
EMG specification 0.5.4
Added per-frame transforms (§7.4.1) and rules for blend modes.
About
PXR LLC
ESKEES is a product of PXR LLC. We keep the EMG format open, and build ESKEES as a product on top of it.