
You will find information on all aspects of our work here on our company blog.
@rabidbadger That was added in the previous update (1.0.7). Glad you like it :)
38 days ago
If you have a moment, pls rate/review the latest #3DBookshelf update on iTunes. It only takes a moment and we'd really appreciate it! Thx!!
41 days ago
The 8th #3DBookshelf update is now live on the AppStore! The notification should appear on your devices shortly :)
41 days ago
UtopiaGL is our proprietary 3D middleware platform, written in C++. It allows us to rapidly prototype and produce complex applications with a minimum of effort. Some of the features of UtopiaGL include:
3D Bookshelf is the world's first fully 3D eBook Reader. Available now on the AppStore for iPhone & iPod touch!
UtopiaGL uses a combination of fragmentation-free memory allocation, and reference counted Garbage Collection. The memory management system includes debugging information to help immediately identify the source of memory leaks.
The Shader Engine cleanly exposes the full power of OpenGL ES 1.1 on the iPhone and iPod touch. The main features include the ability to adaptively batch render calls, minimize internal state changes and maximize rendering speed. UtopiaGL Shaders are small script files that dramatically simplify the process of writing graphics code. Sophisticated rendering techniques can be prototyped quickly and effortlessly, without touching a line of Objective-C / C++. The standard image formats are supported; including the PVR compressed texture formats. All image loading/decompression is integrated with the Memory Manager, and completely removes memory fragmentation during file IO.
Built on top of the UtopiaGL Shader Engine, the Graphics Engine allows rendering of models, meshes, particles, images and fonts. All primitives are rendered using the Shader Engine. Render Targets can be created, and referenced in Shaders, allowing the effortless creation of complex Render-To-Texture effects, including motion blur, and bloom effects.
The Sound Engine, built on OpenAL, allows playback of wav and ogg files. Sounds can be pre-cached, or streamed in real-time. On iPhone OS 3.X devices, the iPod Music Library is exposed cleanly through the UtopiaGL System API, allowing seamless integration of iPod Music within your App. You can play iPod Music, and App specific sound effects simultaneously.
UtopiaGL includes a feature rich math library, hand optimized and ready for the most complex Apps.
UtopiaGL cleanly exposes the full potential of the iPhone and iPod touch, including the Touch API and Accelerometer. Touch events are exposed through Touch objects, each of which has a list of events that occurred since the last frame. This ensures that events are never lost, even in sub-30fps Apps, where many events can accumulate on a single Touch object per frame.
The UtopiaGL File System is a zip based system, and integrates cleanly with the Memory Manager to optimize file reads, completely removing memory fragmentation during file IO.
UtopiaGL exposes hooks at various points (for example UI elements like buttons) in the form of delegates, allowing very powerful and clean separation of concerns and easy customization. UtopiaGL delegates have no dependency on STL.
UtopiaGL integrates with Facebook Connect and Twitter, providing robust, seamless control over publication to a users' Wall or Timeline.
The UtopiaGL tool chain includes the following:
This tool takes a simple script describing a finite state machine and produces C++ code implementing it. This code can be dropped into a project and cuts development time for complex, state based tasks.
The Shader Compiler takes a UtopiaGL Shader script file and produces a tiny binary file which is read by the engine.
The Model Compiler reads the UtopiaGL Model specification format and compiles an optimized binary model which is read by the engine. UtopiaGL includes 3D model exporters for Blender 3D and 3DStudio Max.
The Texture Atlas Compiler takes a list of texture image file names and, using a heuristic packing algorithm, produces a tightly packed atlas of all images. Variable sub-image expansion is supported to overcome mipmapping artifacts.
The Font Compiler takes a formatted input image representing all glyphs for a font, and using the Texture Atlas Compiler, produces a tightly packed atlas of all glyphs.
We're continually improving and extending the UtopiaGL feature list. Some of the features we're working on right now include: