Wednesday, September 7, 2016

Piping Festival tts output to HighFidelity VR



This assumes you have already successfully compiled the HiFi interface in Ubuntu 16.04.

Install pavucontrol and festival:


sudo apt-get install pavucontrol festival


Run festival and the hifi interface in separate terminals.

Open pavucontrol and click on Recording tab.

In QtPulseAudio select Monitor of Built-in Audio Analog Stereo .


Feed text to festival:

festival> (SayText "Hello World!")


or for feeding a text file


festival> (tts "/home/hifi/frostpoem" nil)


Friday, May 8, 2015

Notes on Building Hifi with Razer Hydra motion controller in Ubunti Vivid

November 22, 2015 update: It appears that the sixense sdk is automatically downloaded by the current git version therefore there may be no need for the ff. steps to get the hydra working on hifi.

Update source

cd ~/source/hifi/
git pull


Update: May 8 pull of source appears to have resolved crash in interface on startup but it crashes when I log-in to hifi headquarters.

Download and extract Sixense SDK

Download Sixense SDK from http://sixense.com/linuxsdkdownload
Extract the sixenseSDK_linux_OSX.zip file

Install SDK

Correct the source path for the libraries in install.cfg

gedit ~source/sixenseSDK_linux_OSX/install/install.cfg

In lines 45 and 50 delete glibc4.6

from original

#linux_64_debug
linux_64_debug_destination = /usr/local/lib
linux_64_debug_source = ../lib/linux_x64/glibc4.6/debug
linux_64_debug_file = *.*

#linux_64_release
linux_64_release_destination = /usr/local/lib
linux_64_release_source = ../lib/linux_x64/glibc4.6/release
linux_64_release_file = *.*

to correct source path
#linux_64_debug
linux_64_debug_destination = /usr/local/lib
linux_64_debug_source = ../lib/linux_x64/debug
linux_64_debug_file = *.*

#linux_64_release
linux_64_release_destination = /usr/local/lib
linux_64_release_source = ../lib/linux_x64/release
linux_64_release_file = *.*

Make install.py executable
Open a terminal and install
cd ~source/sixenseSDK_linux_OSX/install/
sudo ./install.py

Copy SDK to HiFi interface source folder


cp -R ~/source/sixenseSDK_linux_OSX/* ~/source/hifi/interface/external/sixense/

Clean hifi build

cd ~/source/build/
make clean

Rebuild interface

cmake ../hifi/
make interface


Result:


Tuesday, May 5, 2015

Notes on building HiFi Stack Manager on Ubuntu 15.04

These notes are on building the High Fidelity Stack Manager on Ubuntu Vivid Vervet. The Stack Manager is the GUI to start and stop the HiFi domain-server and assignment-client. It probably have other functions that I'm not aware of.

Please note that I assume that the domain-server, assignment-client and interface had already been built as noted in the updated post http://matangdilis.blogspot.com/2015/05/notes-on-building-high-fidelity-vr.html .

Install dependencies

sudo apt-get install libquazip-qt5-dev libquazip-dev libquazip-headers libquazip-qt5-1 libquazip1 libquazip-doc libqt5widgets5 libqt5gui5 libqt5svg5 libqt5svg5-dev libqt5core5a libqt5network5 libqt5webkit5-dev libqt5webkit5 zlib1g-dev

Download source

mkdir ~/source
cd ~/source
git clone https://github.com/highfidelity/StackManagerQt.git

Type the path of the hifi source directory in /source/StackManagerQt/src/GlobalData.cpp

gedit /source/StackManagerQt/src/GlobalData.cpp

Type in the path of the hifi build directory in line 71

// allow user to override path to binaries so that they can run their own builds
    _hifiBuildDirectory = "/home/myhome/source/compile/";

    _domainServerBaseUrl = "http://localhost:40100";

Build StackManager

mkdir build-sm
cd build-sm
cmake ../StackManagerQt/
make StackManager

StackManager expects the interface and stack manager (domain server & assignment-client) in /home/dilis/.local/share/High Fidelity/
move domain server & assignment-client to /home/dilis/.local/share/High Fidelity/

cp ~/source/build/domain-server/domain-server ~/.local/share/'High Fidelity'/'Stack Manager'/
cp -R ~/source/hifi/domain-server/resources/web ~/.local/share/'High Fidelity'/'Stack Manager'/
cp -R ~/source/build/domain-server/resources/describe-settings.json ~/.local/share/'High Fidelity'/'Stack Manager'/
cp ~/source/build/assignment-client/assignment-client ~/.local/share/'High Fidelity'/'Stack Manager'/
cp ~/source/build/interface/interface ~/.local/share/'High Fidelity'/Interface/
cp -R ~/source/build/interface/resources ~/.local/share/'High Fidelity'/Interface/

Run StackManager

cd ~/source/build-sm/
./StackManager

(the computer needs to be online in first run because it downloads resources.zip and requirements.zip from the hifi public repo)

Start Server

 
Run assignment






Get content set
(There must be something wrong with what I did, or I'm missing some steps because the content did not appear in the interface. Maybe I need to configure the Stack Manager first.)






Run Interface

Run Interface from ~/.local/share/'High Fidelity'/Interface/
(one could create a link instead in the Ubuntu menu)

Open a new terminal
cd ~/.local/share/'High Fidelity'/Interface/
./interface

(note: I had to start the interface four times because I was still getting the crash errors I noted before in http://matangdilis.blogspot.com/2015/05/notes-on-building-high-fidelity-vr.html)

Click on File>Show address bar
Enter localhost
Then click on the right arrow to connect to the Stack Manager.


Monday, May 4, 2015

Notes on High Fidelity on Ubuntu Vivid: First successful run of the interface.

I've finally been able to run the interface without crashing. I just updated the source,

cd ~/source/hifi
git pull


then recompiled the interface.

I ran the domain-server and assignment-client first before running the interface and here is the first result:


I still have no idea what the heck I'm doing but will hopefully be able to start creating content rather than messing with compile issues.


Saturday, May 2, 2015

Notes on building High Fidelity VR Platform on Ubuntu 15.04

I'm trying to use High Fidelity for a LAN based sim project but
I could not find updated build instructions for High Fidelity (https://highfidelity.com/) so I'm documenting my notes on what worked for me.

This is for Ubuntu Vivid Vervet because it has QT 5.4.1 that is needed by the recent High Fidelity.

Note that I've already built  Rift DK2'S Oculus SDK for Linux version 0.5.0.1-beta (https://developer.oculus.com/downloads/) but I have not tried it yet with the HiFi interface while writing these notes.

BTW. I'm using UbuntuStudio.

1. Install dependencies

I just mashed up a couple of online references so I really don't know if all the dependency packages listed are needed. The ones highlighted are what I found needed but not in the existing docs while building from git:

sudo apt-get install git build-essential cmake qt5-default qtscript5-dev libssl-dev qttools5-dev qttools5-dev-tools qtmultimedia5-dev libqt5svg5-dev libqt5webkit5-dev libsdl2-dev libasound2 libxmu-dev libxi-dev freeglut3-dev libasound2-dev libjack-jackd2-dev libxrandr-dev libqt5xmlpatterns5-dev libqt5xmlpatterns5 libqt5xmlpatterns5-private-dev qml-module-qtquick-controls libqt5qml-graphicaleffects qml-module-qtwebkit libqt5webkit5-qmlwebkitplugin libglew-dev libqt5websockets5-dev libqt5websockets5

references: http://docs.highfidelity.com/v1.0/docs/ubuntu-1410-compile
https://github.com/highfidelity/hifi/blob/master/BUILD_LINUX.md

2. Download the stable release of HiFi

mkdir $HOME/source
cd $HOME/source
git clone https://github.com/highfidelity/hifi.git

3. Run cmake


mkdir build
cd build
cmake ../hifi/

4. To build server parts  

make assignment-client
make domain-server

5. To build the interface
make interface

6. Run the domain-server, assignment-client then interface in order
open a terminal
cd ~/source/build/domain-server
./domain-server

open another terminal tab
 cd ~/source/build/assignment-client
./assignment-client

open a third terminal tab
cd ~/source/build/interface
./interface

There will be some warnings but it does not seem to affect the interface:
[WARNING] [05/02 07:59:51] Cannot open file '/home/dilis/source/build/resources/images/close.svg', because: No such file or directory
[WARNING] [05/02 07:59:51] Cannot open file '/home/dilis/source/build/resources/images/close.svg', because: No such file or directory
[WARNING] [05/02 07:59:51] Cannot open file '/home/dilis/source/build/resources/images/login.svg', because: No such file or directory
[WARNING] [05/02 07:59:51] Cannot open file '/home/dilis/source/build/resources/images/login.svg', because: No such file or directory

The following said it was resolved:
https://worklist.net/19647
https://github.com/highfidelity/hifi/pull/2831/files


But when I grep'ed the warnings appear to be due to:

hifi-stable/interface/ui/loginDialog.ui:

line 194
         <property name="icon">
         <iconset>
          <normaloff>../resources/images/close.svg</normaloff>../resources/images/close.svg</iconset>
        </property>




and line 431
           <property name="icon">
            <iconset>
             <normaloff>../resources/images/login.svg</normaloff>../resources/images/login.svg</iconset>
           </property>
           <property name="iconSize">

Maybe deleting these or correcting the paths will resolve the issue but I have not tried it yet.

Sunday, April 27, 2014

Blender 2.70 GPU render in Ubuntu 14.04 (Trusty) with GTX 750ti

This post sums up the current solutions to get Blender 2.70 to render with Cycles GPU (CUDA) with an Nvidia GTX 750ti in Ubuntu 14.04 (Trusty Tahr) amd64.

Test environment

  • UbuntuStudio 14.04 amd64
  • Blender 2.70 64 bits
  • Graphics processor: GEForce GTX 750 ti
  • Nvidia driver version 337.12 (xorg-edgers ppa)
  • CPU: Core i7 4770

Installation of nvidia-337-uvm

1. Install x-edgers ppa 337.12 nvidia driver from https://launchpad.net/~xorg-edgers/+archive/ppa

2. The patch buildfix_kernel_3.12.patch failed in nvida-337-uvm above, so I modified the deb file and removed the patch and instructions associated with it. Download and install the nvidia-337-uvm.deb in https://www.mediafire.com/?wih2o3vhibdvze6
UPDATE: The latest nvidia-337-uvm_337.19-0ubuntu1~xedgers14.04.1_amd64.deb version from the xorg-edgers ppa archives had commented out the patch in the dkms.conf so there is no need to install my mod. Just install the xorg-edgers version.


3. copy 60-nvidia-uvm.rules (in the zip file above) to /etc/udev/rules.d/
note: this is an implementation of the solution posted at https://devtalk.nvidia.com/default/topic/699610/334-21-driver-returns-999-on-cuinit-cuda-/?offset=6

4. add nvidia and nvidia-uvm to list of modules in /etc/modules

5. reboot your computer

Installation of sm_50 cuda kernel in blender 2.70

3. Download Jucyfruit's precompiled cuda kernel for linux at http://martijnberger.nl/file/2.70_sm50.tar.gz . (see in context http://blenderartists.org/forum/showthread.php?327909-Cycles-NVidia-MAXWELL-Benchmarks&p=2602924&viewfull=1#post2602924)

Copy the X86_64/kernel_sm_50.cubin to blender-2.70-linux-glibc211-x86_64/2.70/scripts/addons/cycles/lib/

Monday, April 7, 2014

Blender 2.70 GPU render in Ubuntu 13.10 (Saucy) with GTX 750ti

This is how I got Blender 2.70 to render with Cycles GPU (CUDA) with an Nvidia GTX 750ti in Ubuntu 13.10 (Saucy Salamander) amd64. I hope the new drivers (with less bugs) will be ready when Trusty gets released.

Test environment

UbuntuStudio 13.10 amd64 (3.11.+ kernel)
Blender 2.70 64 bits
Graphics processor: GEForce GTX 750 ti
Nvidia driver version 334.21 (xorg-edgers ppa)
CPU: Core i7 4770

Installation

1. Install x-edgers ppa 334.21 nvidia driver from https://launchpad.net/~xorg-edgers/+archive/ppa

2. The patch buildfix_kernel_3.12.patch failed in nvida-334-uvm above, so I modified the deb file and removed the patch and instructions associated with it. Download and install the following deb file http://www.mediafire.com/download/eluzj8umso9ym20/nvidia-334-uvm-nopatch.deb

Warning: Installing this deb may cause your system to throw up three error notifications associated with nvidia-uvm on startup. I just cancel all the dialog boxes.





3. Download Jucyfruit's precompiled cuda kernel for linux at http://martijnberger.nl/file/2.70_sm50.tar.gz . (see in context http://blenderartists.org/forum/showthread.php?327909-Cycles-NVidia-MAXWELL-Benchmarks&p=2602924&viewfull=1#post2602924)

Copy the X86_64/kernel_sm_50.cubin to blender-2.70-linux-glibc211-x86_64/2.70/scripts/addons/cycles/lib/


4. Open a terminal and run blender as root one time (nvidia-uvm seems to need this). Use "sudo blender".

Verify by using "ls /dev/nvidia"; (or use 'lsmod | grep nvidia')
"/dev/nvidia-uvm" should be listed.


Note: It appears that this needs to be done over again every time the computer is rebooted. There seems to be a solution here https://devtalk.nvidia.com/default/topic/699610/334-21-driver-returns-999-on-cuinit-cuda-/?offset=6  ; but I have not tried it.

My GPU Render benchmarks

BMW1M-MikePan.blend - 1:11.63
cycles_cornell_bench_27.blend - 2:59.52

Compare your results with these http://blenderartists.org/forum/showthread.php?331149-The-new-Cyles-GPU-2-70-Benchmark&highlight=cycles+benchmark

Sunday, January 1, 2012

AO horse in Opensim

I failed to create a horse as a vehicle in Opensim. So instead of riding a horse the avatar will wear one. Using the animated sculptie horse I made earlier I've added this animation overrider script from Catherine Pfeffer and Carn Iggle posted at the OSgrid forum.



Downloads


http://www.mediafire.com/file/xupwyneu88xbl2x/animkabayoAO.iar (190 KB)
http://www.mediafire.com/file/et4lk9hbdysuabc/riderao.lsl (2 KB)

http://www.mediafire.com/file/7e13tcafsds94kz/riderpose.bvh (19 KB)

http://www.mediafire.com/file/byvmwggb5uj12mw/ridertrot.bvh (19 KB)

QAvimator source file

http://www.mediafire.com/file/im6ribf75gybqtr/riderpose.avm (19 KB)
http://www.mediafire.com/file/csx0ois20vy0sl0/ridertrot.avm (19 KB)

The AO script may be improved by having separate animations play for standing and walking. Unfortunately I do not know how to modify it. In addition the animation needs to be modified to meet the height of the rezzed horse otherwise the horse would need to be scaled and may be too small for the avatar.


Sunday, April 17, 2011

unofficial sloodleset 1.2c for SLOODLE 1.2

SLOODLE 1.2 had been released last June. The new feature is the SLOODLE Tracker. See here for further information (Downloads, Installation and Documentation): https://www.sloodle.org/blog/?p=238

Developers who would like to test it under Opensim may want to look at the unofficial sloodleset for OpenSim (Updated Dec. 23, 2011 due to problems with permissions) below:

Warning: The quiz chair does not work yet in this sloodleset. It is still under investigation. Update: quiz chair should work now.

IAR http://www.mediafire.com/file/sy3yj29vu29cb5e/unofficialSDLSET1.2c.iar (2.54 MB)


OAR http://www.mediafire.com/file/sts8uuqdwcc8dn9/unofficialSDLSET1.2c.oar (2.77 MB)


User Documentation for the Tracker
http://www.sloodle.org/moodle/mod/forum/discuss.php?d=2482

A journal article detailing the use of the tracker by Michael Callaghan et.al. entitled Engineering Education Island: Teaching Engineering in Virtual Worlds (2009) is available here http://www.ics.heacademy.ac.uk/italics/vol8iss3/pdf/ItalicsVol8Iss3Nov2009Paper01.pdf.


For more info see these threads:
http://www.sloodle.org/moodle/mod/forum/discuss.php?d=3370 (Call for Beta Testers)
http://www.sloodle.org/moodle/mod/forum/discuss.php?d=3406 (Unofficial SLOODLESET 1.2 for OS discussion)
http://www.sloodle.org/moodle/mod/forum/discuss.php?d=3401 (Tracker installation problems)

Friday, April 8, 2011

Project Report: Exploratory Approaches to the Design and Development of a Game for a Distance Education Course in Philippine History

by
Roel Cantada

I would like to share my project report for my master's degree in distance education at the University of the Philippines Open University (UPOU).

Downloads

Report
http://www.mediafire.com/file/ei3fb2b9haja388/CantadaProjectReportEbook.pdf (4.57 mb)

WIP OARs of the game
http://www.mediafire.com/file/qlew0zm3ws3v2pp/phgame1_2-8-2011.oar (15.22 mb)
http://www.mediafire.com/file/qb2377nriczm66s/phgame2_2-8-2011.oar (5 mb)
http://www.mediafire.com/file/cb7coc47ao29ydc/phgame3_2-8-2011.oar (10.44 mb)



Moodle backup (Updated Dec. 19, 2011)
http://www.mediafire.com/file/zj5155md34ml0ot/backup-19thcent-20111219-1452.zip (955 kb)

You may need to edit the presenter slides url after restoring this moodle backup. Click on the presenter link->edit tab->hand icon->paste new url. (The new url should come from the course files->briefing folder. Right click and copy link to get the url.) Then save.

Abstract

The project explores the design and development of a prototype video game for a distance education course in Philippine history. The project seeks to answer these questions:

  1. What are the affordable learning actions and constraints of educational games in general and games for learning history in particular? 
  2. What production pipeline of design and development of educational games is appropriate for distance education teachers of Philippine history with meagre resources?
The rationale for the project is the following:

  1. There is little study on courses as games in distance education. 
  2. In the context of connectivist learning theory there is no study of games as hubs for a personal learning environment (PLE). 
  3. There is no available off the shelf game for teaching Philippine history. 
Open Simulator, a Multi-user Virtual Environment (MUVE) was used to create a prototype game. Formative research methods were adopted in the design and development of the game.

It has been found that the game affords the adoption of a wide range of learning theories and methods. As a PLE hub it has weak and strong affordances. In learning history it affords the following:

  1. It affords the linking and finding of historical sources.
  2. It affords role playing of historical characters.
  3. It affords reconstruction of history in multimedia.
  4. It affords the linking of game play with history.
It has also been found that teachers may impose a minimal amount of constraint on the learning path through quests and virtual objects that serve as obstacles. Items may be hidden from view (to delay use) or pointed out by Non-Player Characters. These constraints may help learners recognize affordable learning actions in the game. It may also scaffold the experience of novice players who are unfamiliar with the 3D environment.

In conclusion, series of steps and guidelines are suggested for developing educational games. It is recommended that teachers exploit the tools of the game for collaborative design and development as well as the production of reusable virtual world archives.

Sunday, February 27, 2011

testing SL postcard



testing SL postcard
testing SL postcard. This postcard was sent via posterous. When I tried to send the postcard directly to blogger via email, the images did not appear.

Tuesday, February 8, 2011

My first virtual village for my Philippine History project.


It's not dense enough for a Philippine pueblo but there is a need to limit the prims to conserve computer resources.

Sugarcane field for the sugar run quest of my Philippine history game project


In the center of the field is a trapiche or sugarcane press. The sugar run quest is just a collecting game that will allow students to explore the world and learn about the economy of 19th century Philippines; that is based on crop export. There are no monsters to kill here.

Orientation area of my Philippine history game project


I decided to go with an open area plaza instead of creating buildings so as to facilitate navigation for users who have yet to learn navigation in Open Simulator. At the same time having a single place with all the needed tools for playing and learning would prevent fragmentation especially for an expected low number of users such as a class. The tools here are hypergates, sloodle objects, graffiti board, forum rss and greeters that I turned into npcs for the quests.

The open areas are for students generated content and sandboxes.

Monday, January 31, 2011

Thursday, January 20, 2011

Using Sloodle PrimDrop as a simple quest system for Open Simulator


I set up three Sloodle PrimDrop boxes. The assignments are called Quest1, Quest2, and Quest3. Quest 1 has the description: Please bring me a cube. When you finish this quest go to quest 2. And the rest is the same.

I created a test student named Noob1 Student. When Noob1 touched the PrimDrop boxes they say in the public chat the description of the assignment. This could then be used for instructions to the quest. This description can be displayed again when you click 1: Assignment summary in the Open Simulator (OSim) menu as shown below.



When an assignment object is submitted, there is a feedback. The PrimDrop says in public chat: Item "submission name" appears OK. Thank you Noob1 Student.
Assignment submission successful. Thank you Noob1 Student.

This feedback is in feedback is in sloodle_translation_assignment_en.lsl in the scripts of the PrimDrop object in OSim. The last two lines is as follows:

"assignment:submissionok", "Assignment submission successful. Thank you {{0}}.", // Parameter: avatar name

This could be edited to reflect the next steps to take in the quest chain.  But it would be better if the feedback from the Moodle grading is reflected instead.

The teacher can then take the objects and even grade the assignment in-world as shown below.



In addition to the above I installed the Activity Locking (AL) course format plugin in my Moodle server.



The AL format locks/unlocks succeeding activities based on prerequisites. It appears that PrimDrop is unaware of the locks because when I tried to submit to a locked assignment, it still accepted the submission. There is a need to hack the PrimDrop code for it to recognize locks and prerequisites.

In addition it would be great if the PrimDrop boxes could give an object in return as a reward or as an item for the next quest. Also it would be interesting to use llGiveMoney function in the OpenSim DTL Currency Server. Such that when the student completes the quest he/she can be given token OS money.

Saturday, January 8, 2011

100 npc bots in opensim

I need NPC bots as greeters, information providers, and quest givers. NPC bots are useful to reduce the loneliness of an empty virtual world (which is quite common).  I was able to spawn 100 server side bots in OpenSimulator ver. 0.6.9 following Kenneth Rougeau's instructions. I could have gone higher but the server was getting laggy. My problem with this approach is that I would have to roll back my sim from 0.7.0.2 wherein the NPCModule is broken.

There are 104 avatars in this image, 3 failed to rezz and remain clouds
With respect to my current Philippine History game project, I could really use them as soldiers, shopkeepers, teachers, etc.  I was able to use Radegast's aiml plugin for a chatbot but the resources needed for running multiple instances of Radegast is larger than a server side NPC bot. I can also spawn multiple bots using a single instance of Radegast by using File->New window. And then logging in a new avatar as shown in the following screenshot.


This means I'm keeping multiple Radegast viewers open. Another drawback of this approach is that the two bots in the screenshot share the same aiml brain.  One could use a new brain by switching users in your computer, then running a Radegast viewer there. But then you'll have new xwindows instances and all the overhead of maintaining another account running in the desktop.

Creating a prim mannequin results in an ugly mannequin due to low level LOD at a distance, and the ceiling of 1024 verts per sculpty prim.

There's got to be a better solution out there, or hopefully someone will fix 0.7.x.x OpenSim's NPC Module.
 
Creative Commons License
This work is licensed under a Creative Commons Attribution-Share Alike 3.0 Unported License.