On the website (http://www.litesim.com), I noticed that the main LiteSim goals are very similar as OpenSim goals. Basically, it's open source, which also means "Virtual World for everyone". In addition, you will provide sim hosting services and source code will be released under GPL license (OpenSim is BSD). This sounds great ! But I'm wondering : why LiteSim, as OpenSim exists already ?

Gareth: La raison pour un nouveau projet de Simulateur a pour origine quelques différends avec des membres de l'équipe du projet OpenSim, alors que j'y étais affilié, principalement sur les choses comme la licence BSD plutôt que la GPL, entre d'autres incompatibilités. Mes divergences techniques portent tant sur le code principal lentement devenu de plus en plus gros, que sur les protocoles de communications que je trouve trop basés sur HTTP. Même l'utilisation du remoting avec .NET pour la communication inter-simulateur (NDR: c'est corrigé maintenant ;)) est quelque chose que je trouve très contestable dans la mesure ou il ne correspond à aucun standard ouvert. Avec LiteSim, j'espère fournir quelque chose de plus "léger" en terme de code et de ressources machines (Lite = léger), avec des protocoles très simples et standards. Par exemple, le trafic inter-simulateur utilisera le même message que celui employé sur la grille des Linden: un protocole UDP maison qui est facile à implémenter dans n'importe quel langage. En tant que compagnie (commerciale), j'espère offrir plus de liberté, de meilleurs prix et plus d'innovation à l'aide d'une autre grille, ainsi que de la recherche et du développement autour de protocoles nouvelle génération. Par exemple, l'inventaire offline, sauvegarde, des alternatives à LSL, etc...

Originally, the reason for a new sim project besides opensim was due to my former affiliation with the opensim project and a few internal disputes - Mainly over things such as GPL vs BSD and some personality clashes. The technical differences revolved around how the codebase has slowly gotten more and more bloated, and the grid protocols are very HTTP centric. Even the use of .NET remoting for intersim traffic was something I found highly objectionable as it doesn't lend to open standards. With litesim I hope to provide something "lighter" (lite) in terms of code bloat and resources, as well as having the protocols be very simple and/or standard. For example some of the intersim traffic will use the existing linden message template or a custom UDP protocol that's easy to implement in any language. As a company (on the commercial side) I hope to offer much more freedom, better prices and more innovation beyond other grids as well as longterm supporting R&D into next-gen protocols. Simple new features such as offline inventory backup or alternatives to LSL etc.

Forest: Quelle différences y a t-il entre OpenSim et LiteSim d'un point de vue architecture ? Quelle rupture avec les limites fixées par Liden Labs ? (taille d'une région, limites en primitives...)

What are the main differences between OpenSim and LiteSim on a architectural point of view ? What about LL limits breakage ? (region size, prim limits...)

Gareth: La taille d'une région est une limite difficile à contourner en conservant la compatibilité avec le viewer standard. J'ai proposé une solution élégante au AWG (NR: Architecture Working Group, le groupe de Linden Labs qui travaille sur une future architecture de grille) par rapport à ça. Ma solution consiste à découper une région en sous-régions, chacune étant animée par un simulateur. J'utilise un BSP pour le découpage des formes arbitraires (NDR: o_O ?). Et on re-découpe en sous-région poru ajouter plus de simulateurs et faire ainsi une répartition de charge. Celà dit, pas mal de changements sont nécessaire côté client. Une autre solution serait une grosse bidouille consistant en gros à n'avoir qu'un simulateur, mais à autoriser avatars et primitives en dehors du terrain de 256x256. En bidouillant avec la physique, j'ai pu faire évoluer un avatar dans le vide autour d'un sim.
C'est comme pour les limites en primitives : il n'y aura pas de limite codées "en dur". Si on utilise l'hébergement proposé sur LiteSim.com, le TOS interdit la charge excessive pouvant pénaliser des utilisateurs. Donc si vous avez des structures complexes à bâtir, alors nous travaillerons avec vous pour que ça ne pose pas de problèmes. Le cas échéant, nous donnerons des avertissements si les conseils ne sont pas suivis. A l'extrême limite, si le nombre de prims occupé est trop pénalisant sur un serveur partagé, on retirera la construction. Mais si vous téléchargez LiteSim pour l'héberger vous-même, les limites seront celles imposées par le matériel.

Region size is a difficult one to alter while still retaining compatibility with the standard viewer. What I have proposed within the AWG is a nice solution to that. if you aren't aware the AWG is the architecture working group - LL's group looking at future grid architecture. My solution is to cut up regions into lots of subregions. Each one being a simulator. Using BSP to cut up arbitary shapes. And then further cutting up subregions to add more simulators for load balancing. That would be dependent on a lot of client changes though. Another solution is a rather dirty hack which is basically to have only 1 sim but allow out of range prims and avatars however the terrain system wouldn't work outside of that 256x256 square a lot of times when fiddling with physics i've seen an avatar walk off the side of a sim into the great void beyond.
As for prim limits - no hardcoded limits. If using the hosting services on litesim.com the TOS prohibits excessive system load that impairs other user's enjoyment of the service. So if you have a highly complex build then we'll work with you to ensure it doesn't cause problems and give warnings where advice isn't heeded, but ultimately if someone is on a shared server and their prim count is too high then they may risk having their build removed. If you download the software and host it yourself - the limits of your hardware are all there is.

Forest: Donc, les gens pourront héberger leur propore grille, gratuite ou non en utilisant LiteSim, de la même manière qu'avec OpenSim ?

Then, people can run their own grid installation (free or not) using LiteSim, the same way as some are doing already with OpenSim ?

Gareth: Le code est distribué sous license GPL. Vous pouvez l'utiliser à des fins meurtrières si vous voulez (je plaisante). Je suis vraiment un idéaliste quand il s'agit de logiciel libre. Je ne crois pas à la vente de code, seulement de services. Si vous hébergez votre propre grille, c'est tout à votre honneur, mais je ne serais pas en mesure de fournir de support en dehors de la correction de bugs dans le code principal. Si vous êtes compétiteur de LiteSim Ltd en utilisant LiteSim, ça voudra dire qu'on devra travailler plus dur. Un autre aspect avantageux de la licence GPL, c'est qu'en dehors d'imposer la gratuité permanente, cette licence interdit à quiconque de créer un produit dérivé qui n'est pas ouvert. Aussi, tous ceux qui veulent être compétiteurs devront avoir un meilleur service client, plutôt qu'un meilleur code.

The code is GPLed, so you can use it for mass murder if you want to (joking). I'm very much an idealist when it comes to free software. I don't believe in selling code, only services. if you host your own grid then great - I won't be able to give any support beyond bugfixes (in the main codebase) - but good for you. if you out-compete Litesim Ltd using litesim, then that shows we need to work harder. the other good thing about the GPL of course, is that apart from enforcing that it remains free forever, it also prevents anyone from creating a fork which is closed. So anyone who wants to compete commercially had better do so with their customer services etc rather than the code

Forest: Quand allez-vous diffuser le code ?

At which stage do you intend to release the code ?

Gareth: Le jour du lancement. En même temps que le service d'hébergement. Quelques personnes ont déja vu des bouts de code. Il est à présent en cours de développement intensif, et, hormis sur un serveur inconnu quelque part sur le Web, il n'est pas diffusé publiquement pour le moment.

Launch day - Same day the hosting service goes live. A few people have already seen bits of the code in pieces. right now it's still under heavy development and so there's no public releases as such beyond a dump on a webserver with no links to it.

Forest: Ah oui, je me rappelle avoir vu quelques bouts de code sur un serveur SVN.

yeh I remember having seen some bits of code on a online svn repo

Gareth: Ah, ce que vous avez vu vient probablement d'une ancienne génération du projet.

heh, what you may have seen before is probably from a previous generation of the project.

Forest: Donc, je peux l'oublier ? :)

Then I can forget about it ? :)

Gareth: A présent, la génération est plus stable. Ce que j'appelle "génération" est issu d'une réécriture complète. La génération actuelle implémentera toutes les fonctionalités SL. Libgmmp (NDR: un bout de code de l'ancien LiteSim) a été abandonné. On l'a réécrit en python, en ironpython, avec des bouts en python et en python ! Un petit peu de C# sert à lier libsl. Ce code C# est compilé dynamiquement au démarrage pour utiliser au maximum l'aspect "dynamique" de python. En démarrant, le sim fournit un REPL python standard (Read, Eval, Print Loop). Ainsi vous pouvez réécrire des fonctions entière au moment de l'éxécution. (NDR: Connaît pas python : suis largué...)

Right now it's in a more stable generation. By generation i mean "rewrite from scratch". The current generation is being built for plain SL, libgmmp has been dropped. It's being written in python and ironpython, with a bit of python and python. a few tiny bits of C# code are in there as libsl glue. that C# code is dynamically compiled at startup in order to make full use of python's dynamic nature. When starting up, the sim gives you a standard python REPL (Read, Eval, Print Loop). so you can rewrite whole functions at runtime.

Forest: Donc, il y'a beaucoup de python dans le projet. Je ne connaît rien à Python... On m'a dit que c'était incroyable. Est-ce que l'architecture utilise aussi des serveurs UGAI ? (Users, Grid, Asset, Inventory) ? Allez vous utiliser des moyens de communication

So there is a lot of python in the project.. I dunno anything about python - I was told it is amazing. Is the architecture using the same UGAI structure ? Are you using some disruptive communication features as P2P ? will Grid pard it be optimized to host DSL home hosted simulators ?

Gareth: J'ai accompli un gros travail (certain parlent d'un travail de fou) d'optimisation sur le code réseau. Quelques tests montrent deux avatars marchant et parlant prenant 9kbps/s de bande passante. La structure, est très simple : il y'a trois parties : des web services, les sims, et les serveurs de messages. Les serveurs de messages routent les IMs, les notices et d'autres choses à travers des noeuds. Les Web services stockent des données d'inventaires, de comptes, etc... Les serveurs de sims, vous savez à quoi ils servent... Les Web services sont hébergés sur le même serveur que le site Web pour simplifier l'intégration. Un exemple trivial pour bien voir comment fonctionne l'ensemble : un administrateur envoie un message global. En plus d'être affiché sur le site web ou il restera pendant X minutes, ce message est envoyé à chaque serveurs de messages qui les diffuseront aux simulateurs. Le code du simulateur n'impose pas l'emplacement des composants : vous avez juste besoin d'un "serveur Web", et une interface sera disponible pour des sites tiers. Vous pouvez par exemple avoir un module phpBB qui procédera à l'autorisation d'accès des utilisateurs à votre forum, sans avoir besoin d'un compte supplémentaire pour ce dernier c'est le Web Service de login qui sera là pour répondre si oui ou non le compte est valide.

I've been doing some very heavy (and some say crazy) work on optimising the networking code. In some tests having 2 ruths walking around and chatting took up 9kbps/user bandwidth. As for the structure - it's fairly simple. There's 3 parts : web services, sims, messaging, messaging servers route IMs and notices, or other such things between nodes. web services store account data, inventory etc. sims - you know what they do. The web services are hosted on the same servers as the website to enable trivial integration. one example that's trivial but slightly cool is how globals work. An admin sends a global message it gets displayed on the website above the page content for any hits within the next X minutes and gets sent to any free message server which broadcasts it to sims. The actual sim code doesn't enforce where you put the various components you just need "a webserver" for the web services and the plan is to enable website integration with 3rd-party sites. so that you could for example get a phpBB mod which would let all users of your favourite forum login. without needing a new account First name: username on forum last name: @domain.com. domain.com then has a simple webservice to respond to "is this account legit?" requests.

Forest: C'est très interressant. Je suppose que ça pourra marcher avec OpenID ?

That sounds very interresting - I suppose it may include OpenID auth in the future ?

Gareth: Dans le future, vous pourriez (comme le souhaite LL) vous logger à SL avec votre first name suivi de @litesim.com, ou aller sur litesim et utiliser votre first name puis @secondlife.com. L'idée serait de mettre le domain comme une troisième option sur l'écran de login.

In the future you may be able to (LL willing) login to SL with this:first: your name on litesim @litesim.com, or go to litesim and use @secondlife.com. The ideal would be to put the domain as a third option on the login screen.

Forest: Etes-vous le seul développeur de LiteSim ?

Are you the only LiteSim developer ?

Gareth: A présent oui. D'autres personnes ont travaillé avec moi sur l'ancienne génération du projet, mais se sont lassés. Mais une fois que le code principal sera plus étoffé, certains morceaux auront besoin de spécialistes. J'en ferais intervenir à ce moment.

Right now yes, had people working on previous generation of the project who ultimately got bored essentially. Once the codebase gets more extensive bits of it will have a natural need for specialists, at which point i'll bring in said specialists.

Forest: Quelques personnes (NDR: dont moi...) spéculent sur la volonté des Linden d'ouvrir le code de la partie serveur et de donner de la documentation sur les protocoles. Il y'a un OpenViewer en bonne voie de réalisation. Pensez-vous qu'OpenSim ou LiteSim pourraient évoluer de leur côté en risquant de devenir au bout du compte incompatible avec la technologie Linden Labs ?

Some people are speculating about Linden Labs will to open Grid Servers code and to deliver protocol documentation. There is an OpenViewer software currently on the track : do you think OpenSim / LiteSim technology may evolve on their side a way it may eventually break compatability with actual Linden Labs ?

Gareth: Pour moi ça ressemblerait trop à du "embrace et extend".  Avec litesim, j'espère être compatible avec n'importe quel standard pertinent et m'assurerais que tout nouveau protocole sera complètement ouvert à tout langage et toute plateforme. La prochaine génération de protocoles que j'envisage est quelque chose de complètement différent du SL actuel. GMMP, par exemple est quelque chose de bien plus ambitieux que SL. J'espère que ça n'arrivera pas. Je ne peux pas parler pour les gens d'OpenSim et d'OpenViewer plus que ça, mais du peu que je sache, ils sont interressé au plus à délivrer des extensions, comme ReX. Ou un metaverse complètement P2P.

To me that looks too much like embrace and extend. with litesim, i hope to comply with whatever relevant standards and make sure any new protocols are fully open to any language and any platform. The next-gen protocols i envision would be something completely distinct from SL. GMMP for example is something very very much grander than SL. i hope that does not occur, i can not speak to the opensim/openviewer guys that much but from what i know they are interested in at most offering extensions (such as rex). completely P2P metaverse.

Forest: Thank you very much, Gareth !