Home

Awesome

Release

STUdio - Story Teller Unleashed

Instructions en français

Create and transfer your own story packs to and from the Lunii* story teller device.

DISCLAIMER

This software relies on my own reverse engineering research, which is limited to gathering the information necessary to ensure interoperability with the Lunii* story teller device, and does not distribute any protected content.

USE AT YOUR OWN RISK. Be advised that despite my best efforts to keep this software safe, it comes with NO WARRANTY and may brick your device.

* Lunii is a registered trademark of Lunii SAS. I am (and this work is) in no way affiliated with Lunii SAS.

USAGE

Prerequisite

Installation

Note: avoid running the script as superuser/administrator, as this may create permissions issues.

Configuration

Configuration order is :

  1. (if defined) Java System property (ie: -Dstudio.port=8081 )
  2. (if defined) environment variable (ie: STUDIO_PORT=8081 )
  3. default value (inside code)
Environment variableJava System propertyDefault valueDescription
STUDIO_HOSTstudio.hostlocalhostHTTP listen address
STUDIO_PORTstudio.port8080HTTP listen port
STUDIO_DB_OFFICIALstudio.db.official~/.studio/db/official.jsonOfficial json file database
STUDIO_DB_UNOFFICIALstudio.db.unofficial~/.studio/db/unofficial.jsonUnofficial json file database
STUDIO_LIBRARYstudio.library~/.studio/library/Library path
STUDIO_TMPDIRstudio.tmpdir~/.studio/tmp/Temporary path
STUDIO_OPEN_BROWSERstudio.open.browsertrueAuto open browser
STUDIO_DEV_MODEstudio.dev.modeprodif dev, enable mock mode
STUDIO_MOCK_DEVICEstudio.mock.device~/.studio/device/Mock device path

Sample to disable browser launching (with env var) and listen on port 8081 (with system property) :

set STUDIO_OPEN_BROWSER=false

java -Dstudio.port=8081 \
 -Dfile.encoding=UTF-8 -Dvertx.disableDnsResolver=true \
 -cp $STUDIO_PATH/${project.build.finalName}.jar:$STUDIO_PATH/lib/*:. \
 io.vertx.core.Launcher run ${vertx.main.verticle}
export STUDIO_OPEN_BROWSER=false

java -Dstudio.port=8081 \
 -Dfile.encoding=UTF-8 -Dvertx.disableDnsResolver=true \
 -cp $STUDIO_PATH/${project.build.finalName}.jar:$STUDIO_PATH/lib/*:. \
 io.vertx.core.Launcher run ${vertx.main.verticle}` |

Using the application

The web UI is made of two screens:

Local library and transfer to/from the device

The pack library screen always shows the story packs in your local library. These are the packs located on your computer (in a per-user .studio folder). Three file formats may exist in your library:

Conversion of a story pack will happen automatically when a transfer is initiated, or may be triggered manually. Variations of a given story pack are grouped together in the UI for better readability. The most recent file (highlighted in the UI) gets transferred to the device.

When the device is plugged, another pane will appear on the left side, showing the device metadata and story packs. Dragging and dropping a pack from or to the device will initiate the transfer.

Pack editor

The pack editor screen shows the current story pack being edited. By default, it shows a sample story pack intended as a model of correct usage.

A pack is composed of a few metadata and the diagram describing the various steps in the story:

The editor supports several file formats for audio and image assets.

Images

Image files may use the following formats (formats marked with asterisks are automatically converted when transferring to the device) :

Image dimensions must be 320x240. Images may use colors, even though some colors may not render accurately due to the screen being behind the plastic cover. Bear in mind that the color of the cover may change.

Audio

Audio files may use the following formats (formats marked with asterisks are automatically converted when transferring to the device) :

MP3 and OGG files are expected to be sampled at 44100Hz.

Wiki

More information, including an illustrated usage guide courtesy of @appenzellois, available in the project wiki.

FOR DEVELOPERS

Prerequisite

Building the application

This will produce the distribution archive in web-ui/target/.

THIRD-PARTY APPLICATIONS

If you liked STUdio, you will also like:

LICENSE

This project is licensed under the terms of the Mozilla Public License 2.0. The terms of the license are in the LICENSE file.

The vorbis-java library, as well as the VorbisEncoder class are licensed by the Xiph.org Foundation. The terms of the license can be found in the LICENSE.vorbis-java file.

The com.jhlabs.image package is licensed by Jerry Huxtable under the terms of the Apache License 2.0. The terms of the license can be found in the LICENSE.jhlabs file.