graphical blog 2

Filed under: Blender, WebGL, 3d, network, news, software developement

Version en français
After a first article on WebGL, I come back on this topic for real usage.

Use in dev version of WebGL on Fennec (mobile firefox), go in about:config, fiter webgl, switch webgl.force-enable to true

On Linux plateform, no problem with Nvidia or ATI proprietary driver. On intel you should use Mesa 8.0. It’s available for ubuntu on ppa:xorg-edgers/ppa

* Firefox 11 (beta) and a plugin for older version called Tilt allow to see in 3d web pages structures accelerating vizualisation, interaction and bug finiding for webmasters.

Pyppet – WebGL Streaming blender< =>WebGL allow a realtime WebGL rendered visualisation in web browser of a scene in modelization process pipled from Blender.

minifier of GLSL files allow to comprress the size of a GLSL script, and then to accelerate web transfert and reduce bandwith.

As I thinked of WebGL as a good tool for some vizualisation in Wikipedia, Google, done an anatomic vizualisation tool. It allow in démos to see a human corpse with ZygotBody and a cow with Google Open-3d-viewer. Code source is available at Project page.

Augmented Reality sample from firefox project.

Cloudmach cloud WebGL games plateform

Seriously.js, realtime compositing on a vidéo.

lights.elliegoulding.com a nice demo.

Crazy bugs a nice puzzle.

Using WebGL for vector and 2D bitmap rendering and use fast and energy efficient hardware acceleration in interactve appliactions : WebGL Fundamentals (WebGL is a 2D API!)

Filed under: WebGL, 3d, animation, network, news, software developement

version en français
WebGL is a 3d API for the Web based on OpenGL library. This is a W3C (managing web standard organisation) standard. Already existings applications are already wonderfull and show that web will quickly allow a better interactivity on surf, Here, some examples and links:

* Nokia Maps3d, far better than google earth and open source, you juste have to click on ‘zoom’ on entitled cities or to zoom manually on them (Video if application doesn’t work on your computer).

* “3 dreams of Black” from Rome (and some other demos). Videoclip mixing 2d digital animation, realtime 3d, postprocessing and interactivity. During the clip, mouse allow to lightly move the camera. After the clip you can move around 3 worlds (find youself gates), focus area follow mouse cursor (there is a short depth of field). Clicking mouse button allow to modify wall and grounds.

*WebGL Chrome experiments. This website is a frequently updated set of WebGL fantastic abilities demonstrations, with lot of specific effects around the web.

* Planet WebGL A planet (RSS aggregator) of WebGL ressources. There are lot of examples, tutorials and libraries to develop WebGL applications and integration in web pages.

Ce billet existe également en Français
Translation, subtitling (and captioning) have a big help from the web.

Nowadays some tools appear, at least good enough for syncing translation efforts on the web, perhaps not so good, because of bug, and slow flash usage in some case, this is at least a good start for a quick and efficiency planet-communautary driven translation.

Transifex.net is a collaborative (and free as beer) tool, allowing to translate .po by team. .po are translation files automatically generated by gettext tool (a Gnu tool) with the goal to help to translate (free) softwares.

Open Subtitles is a well known international video subtitles database since several years.

UniversalSubtitles.org is another collaborative (and free as beer) tool, allowing to add subtitles and captions in any existing online video. There’s only one enforcement, the video must be, at worst in flash format (on Youtube, Vimeo, Dailymotion…) or at best in HTML-5 format (WebM, Ogg/Theora, or mp4/H264). The second option allow to edit on a low end computer (as mine) directly on the site, and with the better quality of those formats. The flash version is mostly unusable, at least you have a computer that use the power of the whole Fukushima plant melting power (at least 4 times Tchernobyl). I finaly use computer installed specialized softwares for subtitling, you can find some references on the FLOSS manual dedicated to vido subtitles. But the best solution was finally for me vi + mplayer.

Here is an example (I found this one searching something in chinese to translate) that some viewer couldn’t like :D, with Chinese, English and French subtitles. Sadly it was in Flash format, I worked hard (thankyou FlashVideoReplacer + vi + “mplayer -utf8 -sub *.srt *.mp4″). And as you see, you can integrate it in copy-pasting only 3 lignes of code. I don’t understand whyfor this is in flash, as I uploaded mp4 after the original flash, and some other HTML-5 content are in whole HTML-5 interface…

Flash version (subtitles not synced on my old computer) :

HTML-5 version (doesn’t work with cunjunction of my blog and my paranoid all-blocking browser :D, oops, it works, but is very slow because also in flash :( (syncing problem could be due to lack on timespace between subtitles forthis js, works perfectly in mplayer ?) :

Windows « 8 » sur architecture ARM.

* Il faut s’attendre à un temps de portage de ce système d’exploitation, pour qu’il soit adapté aux plateformes au moment de sa sortie. Actuellement, ces plateformes comportent de 256 Mio à 1 Gio de RAM, Windows 7 nécessite au moins 4 Gio de RAM, c’est donc tout physiquement simplement impossible. On peut imaginer 2Go d’ici la fin 2011, c’est la limite proposée par ARM sur la documentation du Cortex A9 qui équipe certains des nouveaux équipements qui ont commencé à sortir cet été. Nous reviendrons par la suite à la puissance pour exécuter les tâches.

* L’évolution est faite en profondeur, avec les architectures ARM de la catégorie des Cortex A15 MPCore, dont les premiers modèles devraient sortir fin 2012 (d’après ARM), qui prévoient tout ce qui est demandé dans un CPU de bureau ou de serveur moderne, la gestion d’une grande quantité de RAM (jusqu’a 1 Tio), la virtualisation etc…

* Le marché sera d’ici là bien occupé par Android et probablement par d’autres formes de Linux comme par exemple Chrome OS (autre OS de Google orienté bureau), MeeGo (Nokia et Intel), Ubuntu (la distribution la plus populaire sur les postes de travail), OLPC (précurseur des netbooks ayant déjà préparé sa tablette ARM) et d’autres distributions légères dédiées. Il y aura sans doute toujours l’iOS d’Apple sur les marchés de niche (les fameux « Apple fanboys » qui sont de plus en plus mis à l’épreuve par les sautes d’humeur de Steve Jobs et les restrictions d’utilisation). ll faudra alors un sacré travail pour Microsoft, pour convaincre les développeurs de venir continuer à développer sur ce système qui aura pris un certains retards sur ses concurrents qui sont déjà assez mûres aujourd’hui avec plusieurs années d’expérience sur la plateforme. Cela dit il y a encore 2 ans personne (sauf Google lui même ?) n’imaginait la percée d’Android. On est en tout cas loin du contexte de Microsoft développeur pour l’architecture des compatibles IBM PC (ou Wintel) crée par IBM en 81. Les systèmes basés sur le noyau Linux qui est le seul à supporter tous les pilotes de l’architecure ARM semble avoir bien marqué son empreinte majoritaire sur se domaine, le poste client informatique était le dernier où il n’était pas majoritaire.

Les principaux avantages des plateformes ARM, résident dans la bonne répartition des tâches sur les différents composant du SoC (System On Chip, système sur une puce), celui-ci comporte différents cœurs de calcul :
* CPU-s, ontrôleur-s principal-aux. L’exécution des applications, toutes les opérations de base, il font les calculs entiers et flottants génériques.
* GPU-s, processeur-s graphique-s. Plutôt dédié à l’affichage des interfaces, 2d, 3d, composition de l’ensemble de l’affichage.
* DSP-s, processeur-s de traitement du signal. encodage/décodage audio, vidéo, il peut aider au calculs 3d et aux traitement des images (effets, amélioration, reconnaissance de visage, tous les appareils photos, vidéo ou audio en ont au moins un).
* Cœur(s) spécialisés dans la compilation à la volée de code de langage de script à la volée (JIT, Just in Time). La version de base de ce cœur nommé Jazelle est spécialisé Java en raison de son historique dans le monde du smartphone, JazelleRCT est un compilateur JIT câblé matériellement sur les Cortex A8 et Cortex A9, et ThumbEE, une extension, qui est adapté à la majorité des langages de scripts, Python, Perl, .NET, Ruby ?, php ?, etc….
* Divers autres comme ceux spécialisés dans la cryptographie, les communications, etc…

Le tout repose actuellement sur une bonne compatibilité aux normes des standards ouverts définis par le groupe de travail Khronos (OpenGL pour la 3d, OpenAL pour l’audio, OpenCL pour le calcul, OpenMax pour les codecs multimédias.. et surtout OpenKODE qui centralise le tout mais n’a pas encore vraiment percé). Le système de Microsoft pour fonctionner doit adapter ses bibliothèques à tous ces standards ouverts, Microsoft à tendu jusqu’à présent à s’opposer aux standards tant qu’ils en avaient le choix, là ils sont verrouillés jusqu’à ce qu’ils deviennent dominants sur ce marché.

C’est l’utilisation simultanée et bien organisé de toutes ces ressources permettent de compenser la faible puissance de calcul du CPU lui même. Avec un système complet qui consomme 2W, on se retrouve par exemple avec un décodage vidéo 1080p via un cœur spécialisé qui ne consommera que 100mW, on est loin des 25W des coprocesseurs qui surchauffaient sur les architectures Atom d’Intel en 2009, considérés alors comme les plus performants et économique à la fois. La solution est donc ici de demander à différents spécialistes de faire leur travail efficacement, plutôt que de demander à différents généralistes de tout faire à la fois, aussi bien qu’il peuvent et à gâcher inutilement toutes leurs ressources.

Donc vu la situation actuelle de ces architectures, l’engouement énorme du grand public pour les plateformes Android, dans la lancée des netbook, qui n’avaient pourtant pas la maturité des plateformes ARM pour consommer vraiment peut et être à la fois vraiment performants. Vu le flop de Windows CE et de son successeur renommer pompeusement Windows Embedded Compact 7, Microsoft ont visiblement définitivement perdu ce marché au moins jusqu’à ce qu’il soit mûre pour faire tourner l’usine à gaz du type MS-Windows.

Quant à l’émulation d’application windows x86, le problème de différence de puissance du CPU, qui préfère reléguer aux autre, le rend quasi impossible (les émulateurs d’autres processeurs RISC et coprocesseurs pour les console de jeux, qui sont généralement pensée de la même façon fonctionnent par contre assez bien). Il faudra au moins 4 Gio de RAM pour le système, a moins d’utiliser une base Linux + 4 Gio de RAM pour windows 7 et ses applications. Il faudra s’attendre ensuite à une grande lenteur pour convertir d’un cpu surpuissant vers un cpu très léger, tout ira docn très très très lentement.

Vu la situation aujourd’hui et le temps que Microsoft arrive à alléger son système pour qu’il puisse tourner sur ce type de configuration et arrive à attirer des développeurs, on peut donc bien espérer attendre dans le meilleur des cas, 2 ans fin 2012, lorsque les premiers Cortex A15 mpcore sortirons, dans le pire des cas, 1 ou 2 ans de plus. Le problème rester inévitablement d’attendre en plus l’adaptation de toutes les applications qui tournent aujourd’hui sous MS Windows pour x86 et qui verrouillent les derniers utilisateurs.

A patch from Charbel Jacquin allow onion skinning function to mypaint, making it a really nice animation tool.
Patched git trunk sources (2010/03/05) (Update 2010/04/07):

Sources : mypaint-animation.0.8.2+git.tar.lzma (lzma/xz) or
mypaint-animation.0.8.2+git.7z (7zip).

Forum thread

demo (on Youtube). I made a copy of the Charbel Jacquin video (youtube channel) at another place for Chineses and Australians:

Keyboard Status Monitor (key-mon) is used for displaying key during video.

Installation (Debian/Ubuntu Linux):

sudo apt-get install g++ python-dev libglib2.0-dev python-numpy swig scons gettext python-protobuf protobuf-compiler
cd mypaint-animation.0.8.2+git/
scons prefix=/opt/mypaint-animation install

usage:
/opt/mypaint-animation/bin/mypaint

You can replace /opt/mypaint-animation by /usr or /usr/local and it will by in the standard path. or you can select any installation prefix you want.

Older Posts »

Powered by WordPress

Switch to our mobile site