May 12

Una vez mas me dispongo a utilizar OpenSimulator para crear un mundo virtual, en este caso para el programa Ingenio de la Universidad Autonoma de Manizales que permite a los estudiantes de ultimo año de los colegios hacer parte de una experiencia educativa en la Universidad y que este año en el área de sistemas hemos utilizado OpenSimulator para la creación de la isla Ingenio y cada grupo de estudiantes tiene su terreno para crear lo que gusten.

SecondLIfe Viewer 2 y OpenSimulator 0.6.9 rc2

En esta ocasión instalaremos el OpenSimulator en un Ubuntu Desktop 10.04 y lo conectaremos al visor oficial de Second Life en su version 2, especificamente la version 2.0.1.203797.

La versión 0.6.8 de OpenSimulator lanza una excepción al ejecutarse sobre la distribución actual de Ubuntu 10.04 Desktop por tal motivo utilizaremos la versión 0.6.9 rc que esta en desarrollo.

Preparativos :

  • Abrir una consola
  • Instalar paquetes adicionales de Mono que no vienen con la instalación por defecto de Ubuntu
    sudo apt-get install libmono-microsoft8.0-cil

Instalacion OpenSimulator :

  • Abrir un navegador, ir a la pagina de descargas :
    http://opensimulator.org/wiki/Download
  • Descargar o copiar la URL del paquete Binario
    en este caso encontramos que la versión mas reciente es la 0.6.8
  • Abrir una consola
  • Descargar el paquete
    wget http://dist.opensimulator.org/opensim-0.6.8-binaries.zip
  • Expandir el paquete
    unzip opensim-0.6.8-binaries.zip
  • Cambiar al directorio
    cd opensim-0.6.8-binaries/bin
  • Ejecutar el servidor para crear una nueva Region
    ./OpenSim.exe

Crear la Nueva Región :

En este caso crearemos una Region llamada Ingenio, con un avatar maestro llamado Master Ingenio y de clave abcde :

  • Al ejecutar el OpenSimulator este solicita la información del la Region, ejemplo :New region name []: Ingenio
    Region UUID [aba75aca-58f6-47b4-a860-95396ea2c236]:
    Region Location [1000,1000]:
    Internal IP address [0.0.0.0]:
    Internal port [9000]:
    Allow alternate ports [False]:
    External host name [SYSTEMIP]:
    Master Avatar UUID [00000000-0000-0000-0000-000000000000]:
    Master Avatar first name (enter for no master avatar) []: Master
    Master Avatar last name []: Ingenio
    Master Avatar sandbox password []: abcde
  • Al terminar la instalacion debe aparecer el prompt de la region :
    Region (Ingenio) #

Instalar Visor Oficial de Second Life :

  • Ir a la pagina de descargas de Second Life y descargar el visor mas actual :

    http://secondlife.com/support/downloads/?lang=en-US

  • O descargar el visor, abriendo una terminal
  • Ejecutar el comando para descargar el visor
    wget http://download.cloud.secondlife.com/Viewer-2/SecondLife-i686-2.0.1.203797.tar.bz2
  • Expandir el archivo BZip2 :
    bunzip2 SecondLife-i686-2.0.1.203797.tar.bz2
  • Extraer el contenido :
    tar -xvf SecondLife-i686-2.0.1.203797.tar
  • Cambiar al directorio del visor
    cd SecondLife-i686-2.0.1.203797
  • Ejecutar el visor
    ./secondlife -loginuri http://<IpServidor>:9000/ -loginpage http://<IpServer>:9000/?method=login

Problemas :

  • El avatar aparece como una nube cuando se utiliza el visor oficial de Second Life version 2

Enlaces :

Tagged with:



En May 12 de 2010, Marlon J. Manrique escribió acerca de Instalacion de OpenSimulator en Ubuntu 10.04.
Feb 24

Una forma para realizar comunicación entre los prims internos de OpenSimulator o Second Life y el mundo externo es a través del uso de XML-RPC el cual permite enviar mensajes a un objeto dentro de una región, siempre y cuando este se haya registrado para recibir dicha comunicación.

Crear Script para Recibir Datos :

  • Abrir nuestro visor favorito y entrar al servidor de OpenSimulator o SecondLife
  • Crear un objeto
  • Adicionar un Script
  • Abrir el script
  • Colocar el siguiente codigo :
    default {
       state_entry()
       {
          llOpenRemoteDataChannel();
       }
    
       remote_data(integer type, key channel, key message_id, string sender, integer ival, string sval) {
          if(type == REMOTE_DATA_CHANNEL) {
             llOwnerSay("Canal : " + (string) channel + "");
          }
          else if(type == REMOTE_DATA_REQUEST) {
             llRemoteDataReply(channel,NULL_KEY,"Exito",1221);
             llOwnerSay("Cadena : " + sval + "nNumero: " + (string) ival);
          }
          else {
             llOwnerSay("Error");
          }
       }
    }
  • Guardar
  • En este momento el servidor debe compilar el script y muestra en el chat :
    [11:54]  Compile successful
    [11:54]  Primitive: Canal : 61b5e9ca-9378-4254-af36-d78d6ed839de
  • La cadena : 61b5e9ca-9378-4254-af36-d78d6ed839de es el identificador del canal por el cual escucha el prim, es diferente para cada prim

Enviar Datos con C# :

Se utilizara la libreria XmlRpcCS para realizar la comunicación entre la aplicación y el objeto en OpenSimulator o SecondLife.

  • Abrir una consola
  • Crear el directorio para el cliente
    mkdir clientxmlrpc
  • Cambiar al directorio
    cd clientxmlrpc
  • Copiar la libreria al directorio actual
    cp ../XmlRpcCS/XmlRpcCS.dll .
  • Crear un archivo Client.cs y adicionamos el siguiente codigo :
    using System.Collections;
    using Nwc.XmlRpc;
     
    public class Client {
            public static void Main() {
                    // Informacion del Servidor de Second Life
                    // Canal por donde escucha el cliente
                    string server = "http://xmlrpc.secondlife.com/cgi-bin/xmlrpc.cgi";
                    string channel = "eafc58de-5d8a-364e-d6d8-4c4cab0129f4";
     
                    // Parametros
                    Hashtable args = new Hashtable();
                    args.Add("Channel",channel);
                    args.Add("IntValue",12345);
                    args.Add("StringValue","Hello World!"); 
     
                    // Cliente XMLRPC
                    XmlRpcRequest request = new XmlRpcRequest();
                    request.MethodName = "llRemoteData";
                    request.Params.Add(args);
     
                    // Invocacion y Resultado
                    Hashtable ret = (Hashtable) request.Invoke(server);
                    System.Console.WriteLine(ret["StringValue"]);
                    System.Console.WriteLine(ret["IntValue"]);
            }
    }
  • Compilamos el codigo :
    gmcs -lib:. -r:XmlRpcCS.dll Client.cs
  • Ejecutamos
    mono Client.exe
  • Debe mostrar en pantalla los valores enviados por el objeto
    Exito
    1221
  • Mienstras tanto en OpenSimulator debe aparecer en el chat la informacion enviada
    Hello World!!! 12345

Para usar el mismo codigo con OpenSimulator la cadena server debe tener la direccion de nuestro servidor : http://<ipServidor>:<puerto>/cgi-bin/xmlrpc.cgi

Enlaces :

Tagged with:



En February 24 de 2009, Marlon J. Manrique escribió acerca de Cliente XML-RPC en Mono para OpenSimulator.
Feb 24

Actualmente algunos sistemas como OpenSimulator o Second Life utilizan servicios remotos basados en XML-RPC, por tal motivo es necesario utilizar una libreria para realizar los llamados a estos servicios, actualmente para Microsoft .NET podemos encontrar dos librerias :

Utilizaremos la libreria XmlRpcCS, la cual es utilizada por el proyecto OpenSimulator para implementar el servicio de XMLRPC que permite realizar llamados remotos a objetos en este mundo virtual.

Requerimientos :

  • Debemos instalar lo paquetes para compilar la libreria
    sudo apt-get install nant mono-2.0-devel libmono-winforms2.0-cil mono-1.0-devel

Construcción de la Libreria :

  • Abrir una consola
  • Descargar la ultima versión de la libreria
    http://sourceforge.net/project/platformdownload.php?group_id=123702
  • Por ejemplo la versión 1.10
    wget http://ufpr.dl.sourceforge.net/sourceforge/xmlrpccs/XmlRpcCS-1.10.zip
  • Descomprimir el archivo
    unzip XmlRpcCS-1.10.zip
  • Cambiar al directorio de la libreria
    cd XmlRpcCS
  • Compilar la libreria
    nant
  • El archivo XmlRpcCS.dll es creado

Enlaces :

Tagged with:



En February 24 de 2009, Marlon J. Manrique escribió acerca de Libreria XML-RPC para Mono.
Feb 19

mp4live_rtsp

Continuando con las pruebas de transmisión de vídeo en vivo desde una cámara web, utilizando mp4live para la transmisión, ahora el turno es para la combinación con Darwing Streaming Server que permite crear urls basados en RTSP para el acceso al vídeo, el cual puede ser accedido por medio de muchos reproductores y como casos especiales los cuales me interesan Second Life y clientes Java en teléfonos móviles.

Pasos :

Ahora podemos acceder a través del url rtsp://<ipServidor>/default.sdp el cual puede ser utilizado en teléfonos móviles, Second Life o OpenSimulator para acceder al vídeo en vivo.

mp4live_secondlife

Visualizar vídeo con OpenSimulator :

Enlaces :

Tagged with:



En February 19 de 2009, Marlon J. Manrique escribió acerca de mp4live, DSS y OpenSimulator.
Feb 12

sloodle_logo Para comenzar a trabajar con Sloodle dentro de Second Life, debemos obtener una copia de los objetos que nos permiten comunicar nuestro sitio de Moodle con el aula de clase virtual basada en Second Life.

Requisitos :

  • Tener una cuenta en
  • Second Life
  • Tener instalado el visor de Second Life

Pasos :

  • Crear controlador de Sloodle dentro de un curso
  • Obtener los objetos de Sloodle dentro de Second Life
  • Configurar los objetos para acceder al curso de Moodle

Enlaces :

Tagged with:



En February 12 de 2009, Marlon J. Manrique escribió acerca de Configuracion de Sloodle 0.4 en Second Life.
Dec 05

LibSecondLife es un proyecto que nace a partir de la ingenieria inversa cuando varios desarrolladores quieren entender como funciona el cliente de SecondLife y como se comunica con los servidores, de este esfuerzo nace una libreria que permite acceder a los servidores de SecondLife y que puede utilizarse ahora en nuevos clientes de SecondLife y herramientas de terceros multiproposito. Ha sido tan grande el esfuerzo que hoy ya se tiene una libreria que posee un sinumero de clases que permiten interactuar no solo con los servidores de SecondLife, si no tambien con el OpenSimulator, permitiendo crear aplicaciones que se integren con estos mundos virtuales ampliando las posibilidades de desarrollo, como tambien la creacion de herramientas web que interactuen directamente con los avatars, prims y demas elementos. La libreria ha sido desarrollada en c# y puede ser utilizada en la plataforma Windows a traves del framework 2.0 de .NET o en las plataformas Unix a traves de Mono.

Actualmente la libreria esta en un proceso de cambio de nombre debido a que infringe el uso del nombre SecondLife, dando paso a la libreria libopenmv perteneciente al proyecto OpenMetaverse que pretende crear un metaverso basado en software libre.

Enlaces :

Tagged with:



En December 5 de 2008, Marlon J. Manrique escribió acerca de Que es LibSecondLife ?.
Dec 05

Podemos reproducir un video de YouTube dentro de nuestra region de OpenSimulator utilizando el visor de SecondLife, lastimosamente este no soporta contenido flash en este momento pero podemos convertir los videos a un formato que sea compatible con QuickTime para poderlo visualizar dentro de nuestra region en el OpenSimulator.

Existen varios servicios que nos permiten convertir un video de YouTube en un archivo mp4, como por ejemplo (http://www.youtubemp4.com) el cual es compatible con QuickTime, estos son los pasos que debemos seguir para colocar un video de YouTube dentro de nuestra region.

Seleccionar Video en YouTube :

  • Ir al sitio de YouTube
  • Buscar el video que queremos mostrar, por ejemplo :
    http://www.youtube.com/watch?v=QATAtvkDPVA
  • Tome la direccion del video y copie el identificador de este
  • Genere la direccion del video en mp4
    http://www.youtubemp4.com/video/QATAtvkDPVA.mp4

Reproducir dentro de el OpenSimulator :

  • Abrir el visor de Second Life conectado a nuestro servidor OpenSimulator
  • Crear un cubo y darle forma de pantalla
  • Editar la Textura y asignarle por ejemplo la textura steel
  • Ir al menu World
  • Seleccionar la opcion About Land
  • Ir a la pestaña Media
  • Pulsar el boton Set... al frente del cuadro Media URL:
  • Digitar la direccion de uno de los videos de nuestro servidor DSS, por ejemplo :
    http://www.youtubemp4.com/video/QATAtvkDPVA.mp4
  • Pulsar sobre la Textura a Reemplazar y seleccionar la misma que colocamos al cubo
  • Seleccione la opcion Auto Scale si desea que el video ocupe toda la superficie donde se va a visualizar
  • En la parte inferior del visor se encuentra una camara de cine y los botones reproducir y detener
    Pulse el boton reproducir
  • En la pantalla debe visualizarse el video seleccionado.

Nota :

  • Esto funciono correctamente en las plataformas Windows y Ubuntu 8.10
  • Es posible que el servicio de www.youtubemp4.com pronto desaparezca como suele suceder con algunos servicios de este tipo, entonces no es recomendable depender de estos.

Enlances :

Tagged with:



En December 5 de 2008, Marlon J. Manrique escribió acerca de YouTube en OpenSimulator.
Dec 05

Despues de probar el envio de video a los diferentes clientes en las dos Linux y Windos, es hora de probar la transmision del video del servidor de streaming Darwin al cliente de Second Life conectados a una region en un OpenSimulator. Esto deberia funcionar de igual manera ya que el cliente de Second Life utiliza el QuickTime player al menos en la version de Windows, por tal motivo debemos poder ver los videos que se pudieron ver en la prueba con este. En Linux el visor utiliza GStreamer para reproducir el video y donde existen mas restricciones de formato.Para reproducir video dentro de OpenSimulator debemos crear un objeto sobre el cual se visualizara el video, se le debe asignar una textura que es reemplazada por el video al momento de reproducir este y se debe asignar la ruta del video dentro de las opciones de la parcela.

  • Abrir el visor de Second Life conectado a nuestro servidor OpenSimulator
  • Crear un cubo y darle forma de pantalla
  • Editar la Textura y asignarle por ejemplo la textura steel
  • Ir al menu World
  • Seleccionar la opcion About Land
  • Ir a la pestaña Media
  • Pulsar el boton Set... al frente del cuadro Media URL:
  • Digitar la direccion de uno de los videos de nuestro servidor DSS, por ejemplo :
    rtsp://192.168.1.3/sample_50kbit.3gp
  • Pulsar sobre la Textura a Reemplazar y seleccionar la misma que colocamos al cubo
  • Seleccione la opcion Auto Scale si desea que el video ocupe toda la superficie donde se va a visualizar
  • En la parte inferior del visor se encuentra una camara de cine y los botones reproducir y detener
    Pulse el boton reproducir
  • En la pantalla debe visualizarse el video seleccionado.

Pruebas en Windows, cliente de SecondLife:

  • Fue posible reproducir todos los archivos de video, menos el archivo mp3.

Pruebas en Linux Ubuntu 8.10, , cliente de SecondLife :

  • rtsp://<IpServidor>/sample_100kbit.mov
    Error : ** Message: don't know how to handle application/x-rtp, ...
  • rtsp://<IpServidor>/sample_100kbit.mp4
    Crash : bus_callback:338: GST warning: Internal data flow problem.
  • rtsp://<IpServidor>/sample_300kbit.mov
    Error : ** Message: don't know how to handle application/x-rtp, ...
  • rtsp://<IpServidor>/sample_300kbit.mp4
    Error :bus_callback:338: GST warning: Internal data flow problem.
  • rtsp://<IpServidor>/sample_50kbit.3gp
    OK, autoescala el contenido, sin sonido
    ** Message: don't know how to handle audio/AMR, channels=(int)1, rate=(int)8000
  • rtsp://<IpServidor>/sample_h264_100kbit.mp4
    Error :bus_callback:338: GST warning: Internal data flow problem.
  • rtsp://<IpServidor>/sample_h264_1mbit.mp4
    Error :bus_callback:338: GST warning: Internal data flow problem.
  • rtsp://<IpServidor>/sample_h264_300kbit.mp4
  • Error :bus_callback:338: GST warning: Internal data flow problem.

El unico formato que sirvio en ambas plataformas fueron los archivos 3gp, estoy seguro que existe un formato de video estandard para los visores de SecondLife.

Enlaces :

Tagged with:



En December 5 de 2008, Marlon J. Manrique escribió acerca de Darwin Streaming Server y OpenSimulator.
Dec 02
OpenSimulator

OpenSimulator

Uno de los proyectos para el 2009 es trabajar mas en la parte de educación en Second Life, como también explorar OpenSimulator (Servidor de aplicaciones 3D, que se utiliza para crear mundos virtuales), pensando en esto hoy instale en mi computador de escritorio que tiene Ubuntu 8.10 Desktop una versión de opensim, aquí están los pasos.

Instalación Servidor

  • Instalar el servidor de SSH para acceder remotamente por consola :
    sudo apt-get install openssh-server
  • Conectarse al servidor utilizando ssh
    ssh usuario@servidor
  • Editar el archivo : /etc/apt/sources.list
    y adicionar al final del archivo la linea :
    deb http://pkg.knifejaw.com/ubuntu opensim releases
  • Actualizar la lista de paquetes
    apt-get update
  • Instalar el opensimulator
    apt-get install opensimulator
    Esto descargara las librerías de mono si no se tienen instaladas
  • Nota :
    Para que compilen los scripts para los objetos se debe instalar el gmcs
    sudo apt-get install mono-gmcs

El OpenSimulator queda instalado en /usr/lib/opensim y los logs pueden ser encontrados en /var/log/opensim. Se debe proceder a iniciar el servidor ya que este no provee scripts para iniciar o terminar

Ejecutar Servidor :

  • Cambiar el directorio activo al del opensim
    cd /usr/lib/opensim/bin
  • Ejecutar el servidor
    sudo ./OpenSim.exe
  • Configurar el servidor, deje los valores por defecto o modifique
    REGION CONFIG #1: Region Name [OpenSim Test]:
    REGION CONFIG #1: Grid Location (X Axis) [1000]:
    REGION CONFIG #1: Grid Location (Y Axis) [1000]:
    REGION CONFIG #1: Internal IP Address for incoming UDP client connections [0.0.0.0]: <IPServidor>
    REGION CONFIG #1: Internal IP Port for incoming UDP client connections [9000]: <IPServidor>
    REGION CONFIG #1: External Host Name [127.0.0.1]: <IPServidor>
    REGION CONFIG #1: First Name of Master Avatar [Test]:
    REGION CONFIG #1: Last Name of Master Avatar [User]:
    REGION CONFIG #1: (Sandbox Mode Only)Password for Master Avatar account [test]:
  • El servidor suministra un shell para la ejecución de comandos
    Region (root) # :
  • Para terminar la ejecución del servidor ejecute el comando :
    quit

Conectarse a la Región :

Para conectarse al servidor puede utilizarse alguno de los visores como el Liden Client, el Hippo Viewer o el RealXtend, para nuestro caso utilizaremos el Linden Client

  • Para conectarse a la región puede utilizarse el visor de SecondLife
    http://secondlife.com/support/downloads.php
  • Ejecutar el visor suministrado el enlace a la pagina de login y el
    ./secondlife -loginuri http://<IpServer>:9000/ -loginpage http://<IpServer>:9000/?method=login

Instrucciones en :
http://opensimulator.org/wiki/UnofficialDebPackages

http://opensimulator.org/wiki/Connecting

Tagged with:



En December 2 de 2008, Marlon J. Manrique escribió acerca de Instalacion OpenSimulator en Ubuntu 8.10.