LUMIERA.clone/doc/devel/rfc/Roadmap-first.txt
Ichthyostega b556d2b770 clean-up: comb through the historical pages to fix markup errors
Some sections of the Lumiera website document meeting minutes,
discussion protocols and design proposals from the early days
of the project; these pages were initially authored in the
»Moin Moin Wiki« operated by Cehteh on pipapo.org at that time;
this wiki backed the first publications of the »Cinelerra-3«
initiative, which turned into the Lumiera project eventually.

Some years later, those pages were transliterated into Asciidoc
semi-automatically, resulting in a lot of broken markup and links.
This is a long standing maintenance problem problem plaguing the
Lumiera website, since those breakages cause a lot of warnings
and flood the logs of any linkchecker run.
2025-09-21 05:40:15 +02:00

214 lines
8.2 KiB
Text

Design Process : Roadmap
========================
[options="autowidth"]
|====================================
|*State* | _Final_
|*Date* | _2009-01-30_
|*Proposed by* | Ichthyostega
|====================================
A Roadmap leading to Lumiera 1.0
--------------------------------
As the very basic architecture questions seem to settle down now, it seems to
be time to create a first Roadmap skeleton for the project. A specific approach
is proposed: we should define criteria allowing us to judge when we've reached
a certain level plus we should define features to be _excluded_ at a certain
level. We should _not_ define _Features_ to go into a certain level.
TIP: the following text is copied from the Lumiera
https://issues.lumiera.org/roadmap[Trac]
Description: Milestones up to the first stable Release
------------------------------------------------------
Milestone integration: cooperating parts to render output
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
For this milestone to be reached, the basic subsystems of Lumiera need to be
designed, the most important interfaces between the parts of the application
exist in a first usable version, and all the facilities on the rendering code
path are provided at least in a dummy version and are *capable of cooperating
to create output*. Based on Lumiera's design, this also means that the basic
frame cache in the vault layer is working. And it means that a media asset and
a clip can be added to the internal session representation, which is then handed
over to the builder. Probably it's a good idea to include basic
playback/display of the rendered frames within the GUI while they are created.
Notable features _not_ included
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
* no saving and loading of sessions
* no manipulation of objects though the GUI (just display of the session)
* no adding of arbitrary media or inclusion of arbitrary plugins
* no media stream type conversions
* no playback of sound
Milestone alpha: operations accessible for users
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
For this milestone to be reached, the fundamental operations you'd expect from
a video editing software can be *accessed by a user* (not a developer!).
This means that the basic distribution/release model is set up, a _user_ is
able to compile Lumiera or install an existing package. Moreover a user should
be able to create/open a session file (without any quirks), add some media
(probably only a limited number of media types will be supported), and then
perform the most basic operations like positioning, trimming, copying, playing
and finally rendering the timeline. Once this level of functionality is
achieved, the _integration phase_ is closed and Lumiera has reached alpha level.
Notable features _not_ included
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
* advanced configuration
* complex/compound projects
* meta-clips, multi-cam, advanced multi channel sound handling
* any asset management beyond the very basic media handling
* advanced wiring and routing
* media stream type conversions
* adding of arbitrary plugins
* proxy editing
* configurable GUI
Milestone beta: usable for real work
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
For this milestone to be reached, users should be able to *get real work done*
with Lumiera. Especially, a basic asset management should be in place,
Lumiera should be able to handle the most common media types, the user should
be able to perform common editing tasks (add, move, copy, splice, trim, roll,
slide, slip) both by direct manipulation within the timeline, as by using
the conventional two-viewer setup with in/out points. Moreover, it should be
possible to attach effects (probably still just some limited kinds of effects),
apply simple transitions and control the layering and overlay mode on output.
Similarily, the elementary routing capabilities and the handling of multiple
sequences should be suported (probably still with limitations). The framework
for automation handling should be in place, while there may be still
limitations on automation/keyframe editing. Having implemented roughly
this feature set indicates that Lumiera can enter the beta phase.
Notable features _not_ included
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
* configuration editing through the GUI
* advanced routing, full support of virtual clips
* arbitrary wiring, macro effects or similar
* view or editing of individual nodes
* arbitrary nesting and navigation within projects
* full multi-cam support, support for non-standard image/sound types
* plugin libraries and packaging
* interfaces for plugin authors are _not yet_ frozen!
* fully configurable GUI
* full support for proxy editing everywhere
* extended workflow features (like ``export to DVD'')
Milestone release-1.0: usable for productions
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
For this milestone to be reached, Lumiera should be a *reliable tool for
productions with a deadline*. Lumiera 1.0 is not the ``dream machine'', but
users should be able to complete simple productions. We should be able to
promote Lumiera to professionals without remorse. The GUI should be mature,
undo/recovery should work airtight, performance should be ok-ish and output
quality without any glitches. Plugin authors can rely on stable interfaces and
backwards compatibility from now on, up to release 2.0
Notable features _not_ included
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
* bangs and whistles
* render farm, distributed execution, hardware acceleration
* MIDI and adding of non-standard media kinds yet-to-appear
* advanced media management, full support for subtitling
* support for special workflow features
* foreign session import/export
* collaboration features
* artificial intelligence
* saving the world
Discussion
~~~~~~~~~~
Pros
^^^^
* doesn't hinder us
* helps to avoid controversies
Cons
^^^^
The contents of the roadmap aren't very specific and thus aren't of much help
for determining _what has to be done next._
Alternatives
^^^^^^^^^^^^
* Create a complete development plan and derive the roadmap from it.
* Use no roadmap at all beyond the next forseeable minor release.
Rationale
~~~~~~~~~
We deliberately don't set any date schedule. Releases happen ``when they are
ready''. We may decide to do sprints on a short-term timeframe, but it doesn't
help promising things we can't plan and calculate reliably. In an commercial setup,
you have to commit to features and dates, but you also control a certain budget,
which gives you the means to _make things happen._ In Free Software development,
we have to be patient and wait for great things to happen 😇
Thus the proposal aims to set up just a very coarse and almost self-evident
roadmap skeleton, but also to discuss and define criteria up-front, which allow us
to determine when we've actually reached a given level. Furthermore, the proposal
provides a list of features which can be savely _excluded_ from a given milestone.
Comments
--------
Looks ok to me, the dust is settling and we can now think about such a roadmap.
Some goals might be shifted between Milestones on collaborative decision, but
so far I agree. Otherwise I'd like to keep the issue tracker focus on work to
be done, it shall not become a wishlist tool for non developers, any such
things are deliberately left out.
ct:: '2009-01-31'
In https://issues.lumiera.org/ticket/4[#4 (debian packaging)] i explained that
packaging might be optional for ``alpha'' and should be moved to ``beta''.
ct:: '2009-02-01'
OK, we should make the packaging optional. I think, for alpha the criterion is
``accessability for users''. If compiling remains so easy as it is now (compared
with other media related projects), than this shouldn't be a barrier.
Ichthyostega:: '2009-02-01'
[underline]#Many years later# I can confirm that this approach towards a roadmap
and release planning stood well the test of time and looks reasonable still.
The joke with ``artificial intelligence'' got a nice ring meanwhile,
as many people seem to believe that we're close to the AI miracle.
And since Lumiera might indeed integrate some _tools_ based on
``machine learning'' eventually, it seems adequate to point out
that we can not _save the world_ already in Release 1.0
''''
Back to link:/x/DesignProcess.html[Lumiera Design Process overview]