Category Archives: Uncategorized

Digital Comics Hackaton In Paris And Other News

It have already been almost 1 full year (!!!) since my last progress report and there have been some AOS-related events recently so it’s time to post some news.

Digital Comics Hackaton in Paris

Hackathon

On the weekend between the 6th and 8th of July 2014, in the “Labo de L’édition” (litterally:  the “Publishing Laboratory” which is an incubator helping startup innovating in (digital) publishing tools and platforms) which is in Paris France, was organised a hackaton about digital comics.

The participants spent the weekend hacking some animation tools, web development tools and/or ePub related tools to make short digital comics. One of the goal of the organisers (including Actualina which is a startup focused on digital comics publishing and technologies and recently released Sequencity in France) was to observe the results and issues encountered by the teams as they were trying to hack something interesting using no tools that actually suit the range of possible narrative formats on digital platforms.

The exercise was interesting, the results impressives and people were very fun to chat with.

I was there as a “mentor” because apparently I am one of the few knowledgeable about  born-digital narratives, at least on the technical and fundamental theory sides. I thank again the organisation people, “Labo De L’Edition” and “Actualina”, to have invited me, it was a very interesting event and I met a lot of interesting people.

160px-EPUB_logo.svg

There was one particular and important thing that was very motivating through the weekend: almost all issues that participants discovered while hacking ePub or other tools (like Hype or Flash) to make them do something close to what they want; most of these problems were natively fixed by the fundamental structure of AOSL, either 1.0 or 2.0 depending on the problem. I even demonstrated successfully to some people why it works and how, spreading my knowledge of what I think is the right way to make tools for digital narratives.

In any way, I managed to have tons of confirmation that I was on the right track both
on the theoretical and practical side. The only thing missing is basically resources (time, money, etc.) Of course in the last few years I have searched for a long-term solution to solve that resource problem but nothing is easy to this day.

I hope that explaining in depth the fundamental theory behind my approach for AOS as a whole did at least helped some developers want to steal my ideas to put them in potential
tools projects (because, as Balak recently said in a conference, what we desperately need is tools).
I hope, but not too much, that some of them will be interested in participating to AOS but the current state of the code is difficult to start with so it’s not an ideal time right now (but it’s still possible).

Which gets me to:

Some news about AOS development

Since last year a lot happened in my life, which prevented me to progress steadily on AOS.
As always, having a project which is technically at least 4 projects in a production chain
(edition tool <=> universal format <=> exporter(s) => player(s)) but being the sole developer on these projects don’t help the while to grow fast.
However, for the last 6 months, lack of technical progress have been worse than previously
and I only managed to work on a few issues.

I still managed to prepare some ideas that will help me accelerate the development drastically (I hope). One thing I want to do is work on some interactive UI prototypes to solve some potential issues I was having with the UI of AOS Designer, but that will need close participation with some artists, which is hard right now because of my situation, but should be soon solved.

I always really wanted to put something in the hands of artists/authors as soon as possible
to start a dialog to drive the design of the tool, but it’s really hard to reach the initial point
where a very simple AOSL sequence can be edited. Any tool before this point would, in my
opinion, not be of any interest to anyone (me included). I hope to accelerate development to reach this point as soon as possible but I have no guarantee of when I can work on AOS these days, so I can’t promise anything at all.

I should be able to post, some time this summer, some news related to what I plan to do in the coming months, for accelerating drastically AOS development.

Work on AOSL Specification

While I was in the hackaton I did have some free time so I profited from the studious atmosphere and space and I managed to continue the work on the AOSL 1.0 specification document. Without this document, it is very very hard to understand AOSL for a developer (apparently :D ) so I focus most of my spare time allocated on AOS to writing it.

It will also be a starting point for AOSL 2.0 implementation which will be much needed to
finish the edition tool (“AOS Designer” which will be renamed soon).

Website issues and forum offline

Recently I had to cut off my dedicated server and will migrate it’s content to a new one
as soon as possible but I’m not sure when I will have the time to do it (I am in the middle of a business trip in Paris).

The website and the forum were offline but I managed to extract the data from the backup
yesterday to put it on a temporary web hosting account owned by my friends from niseija.com (thank you!). The web hosting account can’t manage Discourse (the forum application, see http://discourse.org ) so I cannot set it up right now but will do as soon as I setup the new server.

 

Next news should be good news, so see you soon!

 

 

 

 

 

 

 

 

Focus in 2013 (part 2): Development

After discussing what will change in AOS project communication starting next year, here are some more technical shift of focus that are on the work.

Folklife_Festival_Welsh_Blacksmith

Development Effort Priority: AOS Designer

I need to use AOS Designer (AOSD). I say this as an author not as a developer. What I mean is that I want to make some stories that I know are hard to do with current tools but should be easier with AOSD. I am not the only one and a lot of people have been waiting years for me to provide a first usable versions of it, even if it’s broken, just to help with the development effort.

Unfortunately, in the middle of developing the first AOSD version, I discovered several code architecture problems that made me rewrite everything once – which was to be expected as I never did write this kind of editor before. Then I hit a point where I really needed to have AOSL stabilized to be able to exploit it correctly. At this time, the development effort shifted back at stabilizing AOSL. Once done, I had to make sure AOSL was interpretable by tools, some kind of working proof-of-concept, which meant I had to write a player implementation, resulting in the work done on AOS Web Player version 0.1.

Now that these basics constructs are finally ready, I can focus on AOS Designer. It really needs tons of love so it will be my priority and I already started working on it.

AOS Designer relies on Qt for the GUI parts -the other parts are supposed to be totally independent, even if it’s not yet totally the case in the current code. Qt had a major release this month, Qt5, which I already began to migrate AOSD code to, as you can see in this repository. One of the reasons to use Qt5 is that it solves some problems I have been hitting in developing AOSD. I also will consider making all the interfaces in QML / QtQuick to help UI designer contribute to the project. I’m not sure yet if it is the right approach for this project but I’ll have to play with it enough to get enough experience to know, or rely on a contributor’s Qt experience in the future if someone feels like helping.

AOSL 1.1

In the beginning of this year I started a discussion in the developer forum to review the features that I feel are needed to make AOSL more useful, as an inter-operable format to represent digital story-telling . Among the important features, text object support, localization (which can currently be done with the “layer” system, but is not perfect for the job yet) and standardized effects would be the most important ones.

As the effort will focus on AOSD as a priority, enhancing AOSL will take some time but can be done in a parallel effort. The first step is to decide which features will get in, how it will be represented and update documentation (more on that in the following section). However, once this is done, an updated version of AOS WebPlayer should be implemented as a proof of concept OR an updated version of AOS Designer OR both if we want to be complete. Any way, this work is necessary to make all the tools very useful but as I can’t clone myself (yet) to work on several projects at the same time, it will go slowly. Fortunately, the first AOSD and AOSWP versions can still rely on AOSL 1.0 while we figure out what AOSL 1.1 will be.

Technical Documentation

There are several reasons, other than the lack of exposition and clarity, which makes programmers interested in AOS don’t feel like they can help. One is that AOS projects mix a wide range of technologies that can be intimidating for some; another, more important, is that there is a big lack of documentation necessary to jump in the wagon of the slowly rolling train that is this project. It’s not like I totally neglected technical documentation. It’s just not enough yet.

Here is a list of documents that I made so far to help clarify how to work on AOS:

  • How to contribute: expose the different work fronts of the different projects.
  • Development Setup: for programmers, how to setup a development environment to work on AOS projects.
  • Coding Standard: for programmers, some (unfinished but usable) coding rules.
  • AOSL Design: an explanation of the goals and guidelines to use in designing AOSL
  • AOS Designer : Vision : a description of objectives and design guidelines used in designing and developing AOS Designer.

And here is a list of documents that are missing to help contribution:

  • AOSL Specification: currently, AOSL is described in an XSD file, which is very helpful for programming works, but only if you already understand how the AOSL format is supposed to work. The missing document is a human-readable description of how a AOSL file is composed. I started working on this long time ago but stopped because it needed first to have a proof-of-concept showing that the format is readable (to software, not to humans) and usable the way it was designed.
  • AOSD Use Cases: this would be to clarify development goals for future developers. However, I think this might not be necessary. First because it will be more obvious what have to be improved in AOSD once a first version is released. Second because such documentation takes a time that I don’t really have. So for now I will put this in stand-by and only reconsider it once AOSD 0.1 is available.
  • AOSD Code Architecture: a description of how the AOSD code is organized. It would just be helpful to have a quick overview for new developers before diving into the actual code. Some time ago I began making a diagram that would make things easier and will be accompanied by some short description of what you see there. I think it is not necessary to complete this document yet because AOSD needs to be stabilized first, but part of the work is done and once AOSD 0.1 is released, I will finish this document.

If you think other documents would be helpful, please describe them in the comments.

New AOSL-based Format

I had some discussions with some people interested in the AOSL format. One of them suggested to provide a specification for another format that would contain the resources used by the AOSL format.

Currently, AOSL don’t specify what format of resources (images, sounds, etc.) are required, it is up to the interpreter implementation to set limitations. This design decision was taken to make sure AOSL can describe any kind of digital story-telling regardless of the kind of resources that it is composed with. However, this means that different interpreters will read the resource infos differently, maybe look for the resource files in different ways depending on the context. This allow nice features, like having an interpreter inside a video game to make “cinematics” using AOS technologies, but it is not really practical for more general cases like when you just want to have a file that contain your whole story and don’t care what player will be used in the end.

This generic case require that some kind of format is specified over AOSL to make possible to just throw a sequence file to any player that accept generic sequence file. This format would be something similar to the epub format: a zip file with an AOSL file to drive the story and resources in sub-directories. It might also specify which generic formats of resources are accepted, certainly something close to HTML specifications.

I will take the time to specify such format as it will help other developers tools exploit AOSL power. It will be used by AOS Designer too.

Development Website Migration

I notified some months ago that the development resources, code & documentation, will migrate from Google Code to BitBucket.org. Nothing special here. The new repository is already in place and what’s missing is the migration of the current documentation. Hopefully it will be done in no time very soon.

The reasons for the migrations are multiple. One is that Google Code forces the user to have and use a GMail account. Another is that it don’t allow easy pull-request manipulations. I would have used GitHub if the project was using git, but it uses Mercurial and I don’t have any reason to change this at the moment.

Repositories Split

Once the migration of the development resources is done, I will also split the code repository in the following way:

  • aosl : the repository containing the AOSL specification and documentation, including the XSD file.
  • aoslcpp: the repository containing a C++ library that can read and interpret an AOSL file.
  • aoswebplayer: the repository containing the code of the web player. I’m not sure yet if I will put the demo in this one. It’s likely but not sure.
  • aosdesigner: the repository containing the code of the AOS Designer project.

Until now, all this code was contained in only one repository to simplify things. However, this is not very helpful for developers wanting to develop with specific version of one of these projects, while using specific version of another of these projects. Also, it is currently not really easy to just get AOSLCPP project to build another tool over it, like a (iOS or Android or Windows or Mac or Linux) native player for example.

These are separate projects, even if they are interdependent, so they should have separate code. I will use build system scripts (CMake) to make sure each project that needs some dependencies will check that these dependencies are available. This separation will also help me keep track of issues separate for each project.

It will also allow me to specify different licences to different projects. (The current code will stay MIT though).

Commercial Projects

As I stated in the introduction article, I will need to live from both Art Of Sequence and other projects. To achieve this, once AOSD 0.1 is out, I will also start work on other sub-projects that will have more or less commercial licenses.

More on that in the next and last article about my plans for AOS in 2013. Stay tuned!

 

Background Works

Since I arrived in Japan my work on AOS have been sparse but is still going on. However, as requested by some people on the development mailing list, I’m focusing my spare time efforts to write documentations. Indeed, people wanting to help this project seems to have a hard time finding clues about the design of AOSL or AOS Designer (the edition tool). No full description of the design of any of those projects have been done yet, because of obvious lack of time. It is still necessary to help others to help me, so I think it’s important to do this work in priority.

So far I’m in the middle of describing the vision, principles and objectives of AOS Designer. Soon I should add a description of the technical architecture/organisation of this tool’s code. After which I should probably setup a list of basic use cases that the tool should make possible to solve.

Of course, AOSL also need some documentations at least to explain the basics of how it is structured, how to setup a basic story, etc. I described orally the details of the language to a coworker recently and I figured that it is less hard to understand that it seems, when you have someone who knows how to read the definition file of the language for you. I am still frustrated that a basic Web Player isn’t available yet to show a simple example that I would then explain in a full tutorial about AOSL. That time will come anyway, but it is still frustrating.

For a few weeks I have been talking to people (including bosses) of the company I work for about AOS because it’s the kind of company that seem perfectly suited to put energy in such project. I don’t know yet if any effort from that company will go into the project, I hope so, but it is not an easy decision. AOS, once stabilized allow businesses to be built based on it. However, until we reach this stabilization point, it is only some code and ideas. How do you justify investing money in this? A very long term view and full understanding of the project meaning and potential would be required to decide to put some effort in this. Unfortunately, I feel that only a handful of people are only starting to get the point of the project and it is really difficult to transmit that understanding to other people, in particular when they try not to see it as a “new market opener” instead of “a bunch of tools to make digital comics”. AOS goes beyond that and is more abstract. Any explanation then becomes fuzzy, or get stereotyped by the lack of variety of examples.
I made a presentation to some people of the company that I might modify to make public soon.

I must add that “real” work, aka coding, is still going on but is strongly halted these days. One important change in the AOS Designer code I need to do is a stronger separation between the part that represent the state of the work and the part that graphically show that work. Currently the separation already exists but is too weak. In particular, I cannot at this moment exploit any parallelization of the tasks that the user want to do. I designed a solution for this and started working on it in a private repository (that I should put online when it gets more stable).

In the same time, interesting things are currently happening in the digital-comics world. For example, the public opening of http://www.thrillbent.com/ that is a collaboration of both Turbo-Media creator and famous american comics makers. One other step in the direction of the world AOS is meant to open the gate of. I can’t wait to see the project of Balak and his friends. Also, french communities like Pilmix.org are getting organized to spread more knowledge about digital narration.

I wish I could to more to help with all this. But I guess I’m already doing as much as I can.

 

Slowing down, preparing carefully.

 

As stated in the first status report, I’m moving in a foreign country very soon. Obviously, being the only developer and contributor to the project so far is making my preparations for this relocation slow down this project development, at least on the concrete coding side.

Still, I’ve managed to prepare future works a bit and ease potential collaborations. Also some people are starting to speak about the project.

Continue reading

Status Report #1

Today I’m exposing to you the current state of the work done on the different AOS sub-projects. Keep in mind that even if lot of code and docs have been written, this is still work in progress that should get us to something usable in a not so far future. To this day the development is a one-man-army effort but I hope that contributions will come to help soon.

Continue reading