https://www.sirikata.com/wiki/api.php?action=feedcontributions&user=Bmistree&feedformat=atomSirikata Wiki - User contributions [en]2024-03-28T20:49:57ZUser contributionsMediaWiki 1.35.7https://www.sirikata.com/wiki/index.php?title=DeploymentNotes&diff=1206DeploymentNotes2012-02-28T19:38:31Z<p>Bmistree: </p>
<hr />
<div>On sns30.cs.princeton.edu, all relevant files are located in /disk/local/sirikata/bskata/, and the rest assumes that you cd-d to this directory.<br />
<br />
===To update code:===<br />
git pull origin master:master<br />
<br />
===To re-build:===<br />
(From root directory or build/cmake)<br />
make -j6<br />
<br />
===To run space:===<br />
Open a screen session.<br />
<br />
cd /disk/local/sirikata/bskata/build/cmake<br />
<br />
* general:<br />
./space_d --servermap-options=--port=6880<br />
<br />
* with physics on:<br />
./space_d --servermap-options=--port=6880 --loc=bulletphysics<br />
<br />
* with no separate static and dynamic trees:<br />
./space_d --servermap-options=--port=6880 --prox.split-dynamic=false<br />
<br />
* with gdb around it:<br />
gdb --args <command you were going to run><br />
<br />
<br />
===To run OH on sns30:===<br />
<br />
Open a screen session.<br />
cd /disk/local/sirikata/bskata/build/cmake<br />
<br />
* pointed at your own db:<br />
./cppoh_d --object-factory-opts=--db=<path to your db file> "--servermap-options=--host=sns30.cs.princeton.edu --port=6880"<br />
<br />
* pointed at a basic small town + birthing tower db (note: requires physics to look "right")<br />
./cppoh_d --object-factory-opts=--db=demo.db "--servermap-options=--host=sns30.cs.princeton.edu --port=6880"<br />
<br />
* to run with gdb:<br />
gdb --args <command you were going to run><br />
<br />
<br />
<br />
===Notes:===<br />
Please don't modify the following files for your own testing, everyone uses them:<br />
: /disk/local/sirikata/bskata/build/cmake/demo.db<br />
: /disk/local/sirikata/bskata/build/cmake/generate.em</div>Bmistreehttps://www.sirikata.com/wiki/index.php?title=DeploymentNotes&diff=1205DeploymentNotes2012-02-28T19:30:27Z<p>Bmistree: Created page with "On sns30.cs.princeton.edu, all relevant files are located in /disk/local/sirikata/bskata/, and the rest assumes that you cd-d to this directory. To update code: git pull origi..."</p>
<hr />
<div>On sns30.cs.princeton.edu, all relevant files are located in /disk/local/sirikata/bskata/, and the rest assumes that you cd-d to this directory.<br />
<br />
To update code:<br />
git pull origin master:master<br />
<br />
To re-build:<br />
make -j6 (from root directory or build/cmake)<br />
<br />
To run space:<br />
Open a screen session.<br />
cd /disk/local/sirikata/bskata/build/cmake<br />
<br />
* general:<br />
./space_d --servermap-options=--port=6880<br />
<br />
* with physics on:<br />
./space_d --servermap-options=--port=6880 --loc=bulletphysics<br />
<br />
* with no separate static and dynamic trees:<br />
./space_d --servermap-options=--port=6880 --prox.split-dynamic=false<br />
<br />
* with gdb around it:<br />
gdb --args <command you were going to run><br />
<br />
<br />
To run OH on sns30:<br />
<br />
Open a screen session.<br />
cd /disk/local/sirikata/bskata/build/cmake<br />
<br />
* pointed at your own db:<br />
./cppoh_d --object-factory-opts=--db=<path to your db file> "--servermap-options=--host=sns30.cs.princeton.edu --port=6880"<br />
<br />
* pointed at a basic small town + birthing tower db (note: requires physics to look "right")<br />
./cppoh_d --object-factory-opts=--db=demo.db "--servermap-options=--host=sns30.cs.princeton.edu --port=6880"<br />
<br />
* to run with gdb:<br />
gdb --args <command you were going to run><br />
<br />
<br />
<br />
Notes:<br />
Please don't modify the following files for your own testing, everyone uses them:<br />
/disk/local/sirikata/bskata/build/cmake/demo.db<br />
/disk/local/sirikata/bskata/build/cmake/generate.em</div>Bmistreehttps://www.sirikata.com/wiki/index.php?title=BuildTheCode&diff=1204BuildTheCode2012-02-25T02:06:36Z<p>Bmistree: /* DLL Path under windows */</p>
<hr />
<div>= Dependencies =<br />
<br />
Sirikata depends on quite a bit of external libraries. [[Dependencies]] gives a list of required and optional libraries and a brief description of how they are used.<br />
<br />
When building Sirikata you have two options: handle installing dependencies yourself or use our install scripts or precompiled binaries (depending on platform and library) to help you build and install the required libraries. If you want to perform the installation or need to write new scripts for a new platform, see [[Dependencies]] for instructions on how to do so.<br />
<br />
These instructions explain how to use our install script or precompiled binaries.<br />
<br />
{{note}} Some dependency files are quite large, especially the precompiled binaries. When you run the install commands, it may appear the script has hung, but its likely just checking out the packages.<br />
<br />
{{note}} Throughout we'll be using the standard set of dependencies, which includes support for graphics, embedded browsers, scripting languages, and physics simulation via Bullet. If you don't need all these features, for example because you are only running the space server, you can use a different dependency target. Where <tt>depends</tt> is used, you can replace the following to get a different set of dependencies:<br />
* <tt>minimal-depends</tt> - the minimal dependencies required to get the system building<br />
* <tt>minimal-graphics-depends</tt> - the minimal dependencies required to get 3D graphics working, i.e. to get a client running. Note that not all features of the client will be enabled by this<br />
* <tt>full-depends</tt> - all dependencies, enabling all features of the system, and enables use of root to install system packages<br />
<br />
== CMake ==<br />
<br />
We use CMake on all platforms to check for dependencies and generate a build script. The Linux dependencies will install CMake from your system's package manager if you allow it to use root. Otherwise and for all Mac and Windows platforms, CMake is not installed automatically. You should use the install tool from [http://www.cmake.org the CMake website] or install it using your system's package manager. CMake 2.6 or higher is required.<br />
<br />
{{note}} On OS X, when the installer asks if you want to install the command-line version of the tools, say '''yes'''. While our build system can be run through the GUI, some dependencies also use CMake and you do not want to have to perform those install steps manually.<br />
<br />
== Subversion ==<br />
<br />
Because of their size, dependencies are stored in subversion repositories. If you want to use our automated dependency scripts, you'll need Subversion installed. It is installed on Mac by default, Linux users can use their distributions system package, and Windows users can either install it via Cygwin or use [http://tortoisesvn.tigris.org/ TortoiseSVN].<br />
<br />
== Simple Method: Makefile ==<br />
On all platforms, if you have the right tools (make, subversion, and unzip on Windows provided by Cygwin) a Makefile is provided in the root directory which checks out and either builds or extracts dependencies to <tt>sirikata/dependencies/</tt>:<br />
<br />
cd sirikata/<br />
make depends<br />
<br />
== Windows Notes ==<br />
The simple method requires Cygwin. All dependencies are installed locally in the Sirikata checkout. No root access is needed.<br />
<br />
{{note}} The Windows dependencies support Visual Studio 2008 SP1 and later, including Express editions. You '''must''' have SP1 installed for Visual Studio 2008. Visual Studio 2005 and earlier are no longer supported.<br />
<br />
=== Without Cygwin (manual) ===<br />
If you do not have Cygwin and do not want to install it, you can perform the steps manually. Using a subversion client, checkout<br />
http://sirikatawin32.googlecode.com/svn/trunk/ <br />
to <tt>sirikata/dependencies/</tt>.<br />
<br />
Go into the dependencies folder and unzip all of the packages directly into the dependencies directory. Make sure to select "Extract Here". If that option is not available, remove the name of the zip file from the end to indicate where to extract, so it just ends with "dependencies". The extracted directories should not have the same name as the zip files.<br />
<br />
Then got to the top-level directory and run these two commands:<br />
git submodule init<br />
git submodule update<br />
<br />
== Mac ==<br />
<br />
=== Required Tools ===<br />
<br />
You'll need a few required tools, most of which are built in. At a minimum, you'll need git and wget. These are easy to get from [http://mxcl.github.com/homebrew/ homebrew].<br />
<br />
=== 32 vs. 64 bit ===<br />
<br />
While other platforms (e.g. Linux) have supported 64 bit builds for awhile, currently many dependencies still don't support 64 bit builds on OS X. Because of this we force all builds into 32-bit i386 mode.<br />
<br />
===== XCode and Developer Tools =====<br />
<br />
The transitions between Leopard, Snow Leopard, and Lion, gcc 4.0 and 4.2, and XCode 3 and 4 have made it quite challenging to support all configurations of OS X development machines. Here are the configurations which are known to work and are the suggested way to configure your environment:<br />
<br />
* If you are on Lion, you should just install XCode 4. Currently it will include gcc 4.2.<br />
* If you are on Leopard or Snow Leopard you should use XCode 3.2.6 and gcc 4.0.<br />
<br />
In both cases, when you run the dependency install script it should list whether it has found those configurations.<br />
<br />
You can install XCode 3.2.x in parallel to XCode 4.0 if you already have that version. You can either download XCode at [http://developer.apple.com/mac] or use the Snow Leopard DVD: under “Optional Installs”, install “Xcode.mpkg” to get 3.2. Use all default options. We highly recommend at least 3.2.2 as previous versions had issues with hanging.<br />
<br />
{{note}} If you already installed XCode 4, then gcc and g++ were upgraded to version 4.2. The simplest course of action is to (re)install XCode 3.2 in parallel from [http://connect.apple.com/cgi-bin/WebObjects/MemberSite.woa/wo/5.1.17.2.1.3.3.1.0.1.1.0.3.3.3.3.1 here] -- the setup should work fine next to XCode 4. You might be able to get by just by copying the old files (gcc-4.0 and g++-4.0) from /Developer-old/usr/bin back to /Developer/usr/bin, but this probably won't work for Snow Leopard (OS X 10.6).<br />
<br />
You may get errors of the following form: "CMake Error: The following variables are used in this project, but they are set to NOTFOUND." For the Boost_INCLUDE_DIR variable, you can edit CMakeCache.txt to set the variable to the directory containing the Boost header files. It should be something like sirikata/dependencies/boost_1_45_0/boost.<br />
<br />
== Linux ==<br />
The install script expects an Ubuntu system, 8.04 or greater.<br />
<br />
If you want to install the system package dependencies directly, issue the following command:<br />
<br />
sudo apt-get install \<br />
git-core cmake sed unzip zip automake1.9 nvidia-cg-toolkit jam g++ \<br />
libzzip-dev libxt-dev libxaw7-dev libxxf86vm-dev libxrandr-dev libfreetype6-dev \<br />
libxext-dev autoconf libtool libpcre3-dev flex bison patch libbz2-dev gawk \<br />
libglu1-mesa-dev tofrodos libglut3-dev freeglut3-dev scons libexpat1-dev \<br />
libgtk2.0-dev libnss3-dev libgconf2-dev gperf libasound2-dev subversion \<br />
libtool autoconf ruby flex libgsl0-dev libssl-dev libspeex-dev libxss-dev \<br />
libdbus-glib-1-dev libgnome-keyring-dev libxml2-dev libjpeg62-dev libcups2-dev \<br />
wget libcurl4-gnutls-dev build-essential libxmu-dev libxi-dev libusb-1.0-0-dev \<br />
yasm<br />
<br />
These packages should cover everything you need for the entire system, including the graphical client and all scripting plugins.<br />
<br />
= Building Sirikata =<br />
<br />
We use CMake to generate our build scripts. Make is used on Mac and Linux and Visual Studio is used on Windows to perform the actual build. All three builds follow the same basic steps:<br />
* Run cmake, possibly modifying the configuration.<br />
* Run your build tool.<br />
<br />
== Windows ==<br />
<br />
Start up CMake and point both paths to sirikata/build/cmake. Hit configure twice. If you installed any dependencies in non-standard locations, point CMake to them now. To generate the build files, hit Generate.<br />
On Windows Vista or later you might want to change CMAKE_INSTALL_PREFIX to the directory where you want to install your compiled binaries and hit configure again, because by default CMake will generate Visual Studio project that will try to install compiled binaries into %PROGRAMFILES%. This requires administrative privileges, which is why build will fail (unless you run Visual Studio with administrative privileges or have disabled UAC).<br />
<br />
Now browse to sirikata/build/cmake. Open Sirikata.sln. Select the configuration you want to build -- we highly recommend RelWithDebInfo because Debug runs very slowly and RelWithDebInfo still gets you useful information when run in the debugger. Finally, run Build All.<br />
<br />
This should result in all libraries, plugins, and binaries in the sirikata/build/cmake/debug or sirikata/build/cmake release, depending on which configuration you built.<br />
<br />
=== Notes ===<br />
* There aren't standard locations to search for dependencies on Windows. Obviously we've setup the build system to work cleanly with the dependency install script. The easiest way to get a manual installation of dependencies on Windows to work is to use the same layout as the install script, where all dependencies are located in sirikata/dependencies. If you don't do this, you will almost certainly need to manually specify the locations of some libraries in CMake.<br />
* The build is known to work for VS2008, for both regular and Express versions.<br />
* If you get error 0xc0000022, check the permissions of the sirikata top-level directory. If you used Cygwin's version of git, it will remove execute permissions for security purposes. You may enable execute by doing "chmod -R +x sirikata" in cygwin, or Granting yourself Full Control in Right Click->Properties->Security (make sure to click the Replace All Entries in Child Objects checkbox).<br />
* Getting errors like "fatal error C1900: Il mismatch between 'P1' version '20080116' and 'P2' version '20070207'"? You're probably on Visual Studio Express 2008 and haven't updated to SP1.<br />
<br />
==== DLL Path under windows ====<br />
For setup on Windows, run /tools/win32/copydlls.bat '''from the Sirikata root directory'''. All that this does is copy several dependencies' dll-s (and several files from Berkelium) into the build/cmake/BUILDTYPE directory, where BUILDTYPE is Debug, Release, or RelWithDebInfo. <br />
<br />
Note that Sirikata currently does not work in Windows 2000, due to the lack of a few raw input functions (RegisterRawInputDevice) that SDL 1.3 uses. This will hopefully be fixed in SDL at some point to make it use the old DirectX raw input system.<br />
<br />
== Mac and Linux ==<br />
<br />
For convenience we provide a top level makefile which performs the standard build operations. If you want a default build and have used the install script for dependencies, do:<br />
<br />
cd sirikata/<br />
make<br />
<br />
If you'd like to run the build manually, do the following (essentially what is in the makefile):<br />
<br />
cd sirikata/build/cmake<br />
cmake . [-DCMAKE_BUILD_TYPE=Debug|Release]<br />
make<br />
<br />
To interactively adjust settings, for instance to point CMake to a different version of libraries:<br />
<br />
cd sirikata/build/cmake<br />
ccmake .<br />
<br />
When the build completes you should have the libraries, plugins, and binaries in sirikata/build/cmake.<br />
<br />
=== Additional Tools ===<br />
<br />
If you're planning on developing Sirikata, it can be helpful to use ccache or a distributed compiler tool like distcc. These tools speed up compilation, either avoiding duplicate work after running make clean or by distributed compile jobs across the network. We provide a wrapper script that tries to use these automatically. Instead of the steps above, use this script:<br />
<br />
cd sirikata/build/cmake<br />
rm CMakeCache.txt # We need to clear out old settings if you already ran CMake<br />
./cmake_with_tools.sh .<br />
<br />
The script passes other settings along to CMake, so you can add any parameters you would normally pass to CMake to this command as well.<br />
<br />
=== Mac XCode Project ===<br />
<br />
Many mac developers prefer to use the XCode programming environment.<br />
To do this, cmake will need to be configured to use XCode<br />
<br />
Steps are:<br />
<br />
1. test -d build/cmake/Debug || mkdir build/cmake/Debug<br />
1. The directory for XCode build products.<br />
2. python csv_converter.py build/cmake/Debug/scene.csv scene.db<br />
1. Generate a scene for use by the XCode project.<br />
3. cd build/cmake<br />
4. ln -s ../../dependencies/Frameworks Frameworks<br />
1. To fix brittle paths in Xcode project.<br />
5. cmake -G Xcode .<br />
6. cd Debug<br />
7. ln -s ../Sirikata.Protocol.dll Sirikata.Protocol.dll<br />
8. ln -s ../Sirikata.Runtime.dll Sirikata.Runtime.dll<br />
9. cd ..<br />
10. Launch Xcode<br />
11. Open Sirikata.xcodeproj<br />
12. Edit project settings<br />
1. General tab<br />
2. Choose project root<br />
3. Select build/cmake directory. Click OK. Value should just be <Project File Directory>.<br />
1. This fixes a problem that prevents debugger from working.<br />
13. Project menu<br />
1. Select active target ALL_BUILD<br />
2. Select active project executable cppoh<br />
3. Select active build configuration Debug<br />
14. Close XCode to save the project<br />
15. Reopen Sirikata.xcodeproj<br />
16. Build it<br />
17. Debugger<br />
1. Confirm that you can set a break point.<br />
2. Run debugger<br />
3. Confirm that it stops at a break point.<br />
4. Confirm that it displays source code.<br />
5. (trouble shoot back to step 10)<br />
<br />
= Running Sirikata =<br />
Assuming the previous steps have completed successfully, you should have a few binaries built and you are ready to [[Getting_Started_for_Users|run Sirikata]].</div>Bmistreehttps://www.sirikata.com/wiki/index.php?title=BuildTheCode&diff=1203BuildTheCode2012-02-21T19:10:54Z<p>Bmistree: /* Simple Method: Makefile */</p>
<hr />
<div>= Dependencies =<br />
<br />
Sirikata depends on quite a bit of external libraries. [[Dependencies]] gives a list of required and optional libraries and a brief description of how they are used.<br />
<br />
When building Sirikata you have two options: handle installing dependencies yourself or use our install scripts or precompiled binaries (depending on platform and library) to help you build and install the required libraries. If you want to perform the installation or need to write new scripts for a new platform, see [[Dependencies]] for instructions on how to do so.<br />
<br />
These instructions explain how to use our install script or precompiled binaries.<br />
<br />
{{note}} Some dependency files are quite large, especially the precompiled binaries. When you run the install commands, it may appear the script has hung, but its likely just checking out the packages.<br />
<br />
{{note}} Throughout we'll be using the standard set of dependencies, which includes support for graphics, embedded browsers, scripting languages, and physics simulation via Bullet. If you don't need all these features, for example because you are only running the space server, you can use a different dependency target. Where <tt>depends</tt> is used, you can replace the following to get a different set of dependencies:<br />
* <tt>minimal-depends</tt> - the minimal dependencies required to get the system building<br />
* <tt>minimal-graphics-depends</tt> - the minimal dependencies required to get 3D graphics working, i.e. to get a client running. Note that not all features of the client will be enabled by this<br />
* <tt>full-depends</tt> - all dependencies, enabling all features of the system, and enables use of root to install system packages<br />
<br />
== CMake ==<br />
<br />
We use CMake on all platforms to check for dependencies and generate a build script. The Linux dependencies will install CMake from your system's package manager if you allow it to use root. Otherwise and for all Mac and Windows platforms, CMake is not installed automatically. You should use the install tool from [http://www.cmake.org the CMake website] or install it using your system's package manager. CMake 2.6 or higher is required.<br />
<br />
{{note}} On OS X, when the installer asks if you want to install the command-line version of the tools, say '''yes'''. While our build system can be run through the GUI, some dependencies also use CMake and you do not want to have to perform those install steps manually.<br />
<br />
== Subversion ==<br />
<br />
Because of their size, dependencies are stored in subversion repositories. If you want to use our automated dependency scripts, you'll need Subversion installed. It is installed on Mac by default, Linux users can use their distributions system package, and Windows users can either install it via Cygwin or use [http://tortoisesvn.tigris.org/ TortoiseSVN].<br />
<br />
== Simple Method: Makefile ==<br />
On all platforms, if you have the right tools (make, subversion, and unzip on Windows provided by Cygwin) a Makefile is provided in the root directory which checks out and either builds or extracts dependencies to <tt>sirikata/dependencies/</tt>:<br />
<br />
cd sirikata/<br />
make depends<br />
<br />
== Windows Notes ==<br />
The simple method requires Cygwin. All dependencies are installed locally in the Sirikata checkout. No root access is needed.<br />
<br />
{{note}} The Windows dependencies support Visual Studio 2008 SP1 and later, including Express editions. You '''must''' have SP1 installed for Visual Studio 2008. Visual Studio 2005 and earlier are no longer supported.<br />
<br />
=== Without Cygwin (manual) ===<br />
If you do not have Cygwin and do not want to install it, you can perform the steps manually. Using a subversion client, checkout<br />
http://sirikatawin32.googlecode.com/svn/trunk/ <br />
to <tt>sirikata/dependencies/</tt>.<br />
<br />
Go into the dependencies folder and unzip all of the packages directly into the dependencies directory. Make sure to select "Extract Here". If that option is not available, remove the name of the zip file from the end to indicate where to extract, so it just ends with "dependencies". The extracted directories should not have the same name as the zip files.<br />
<br />
Then got to the top-level directory and run these two commands:<br />
git submodule init<br />
git submodule update<br />
<br />
== Mac ==<br />
<br />
=== Required Tools ===<br />
<br />
You'll need a few required tools, most of which are built in. At a minimum, you'll need git and wget. These are easy to get from [http://mxcl.github.com/homebrew/ homebrew].<br />
<br />
=== 32 vs. 64 bit ===<br />
<br />
While other platforms (e.g. Linux) have supported 64 bit builds for awhile, currently many dependencies still don't support 64 bit builds on OS X. Because of this we force all builds into 32-bit i386 mode.<br />
<br />
===== XCode and Developer Tools =====<br />
<br />
The transitions between Leopard, Snow Leopard, and Lion, gcc 4.0 and 4.2, and XCode 3 and 4 have made it quite challenging to support all configurations of OS X development machines. Here are the configurations which are known to work and are the suggested way to configure your environment:<br />
<br />
* If you are on Lion, you should just install XCode 4. Currently it will include gcc 4.2.<br />
* If you are on Leopard or Snow Leopard you should use XCode 3.2.6 and gcc 4.0.<br />
<br />
In both cases, when you run the dependency install script it should list whether it has found those configurations.<br />
<br />
You can install XCode 3.2.x in parallel to XCode 4.0 if you already have that version. You can either download XCode at [http://developer.apple.com/mac] or use the Snow Leopard DVD: under “Optional Installs”, install “Xcode.mpkg” to get 3.2. Use all default options. We highly recommend at least 3.2.2 as previous versions had issues with hanging.<br />
<br />
{{note}} If you already installed XCode 4, then gcc and g++ were upgraded to version 4.2. The simplest course of action is to (re)install XCode 3.2 in parallel from [http://connect.apple.com/cgi-bin/WebObjects/MemberSite.woa/wo/5.1.17.2.1.3.3.1.0.1.1.0.3.3.3.3.1 here] -- the setup should work fine next to XCode 4. You might be able to get by just by copying the old files (gcc-4.0 and g++-4.0) from /Developer-old/usr/bin back to /Developer/usr/bin, but this probably won't work for Snow Leopard (OS X 10.6).<br />
<br />
You may get errors of the following form: "CMake Error: The following variables are used in this project, but they are set to NOTFOUND." For the Boost_INCLUDE_DIR variable, you can edit CMakeCache.txt to set the variable to the directory containing the Boost header files. It should be something like sirikata/dependencies/boost_1_45_0/boost.<br />
<br />
== Linux ==<br />
The install script expects an Ubuntu system, 8.04 or greater.<br />
<br />
If you want to install the system package dependencies directly, issue the following command:<br />
<br />
sudo apt-get install \<br />
git-core cmake sed unzip zip automake1.9 nvidia-cg-toolkit jam g++ \<br />
libzzip-dev libxt-dev libxaw7-dev libxxf86vm-dev libxrandr-dev libfreetype6-dev \<br />
libxext-dev autoconf libtool libpcre3-dev flex bison patch libbz2-dev gawk \<br />
libglu1-mesa-dev tofrodos libglut3-dev freeglut3-dev scons libexpat1-dev \<br />
libgtk2.0-dev libnss3-dev libgconf2-dev gperf libasound2-dev subversion \<br />
libtool autoconf ruby flex libgsl0-dev libssl-dev libspeex-dev libxss-dev \<br />
libdbus-glib-1-dev libgnome-keyring-dev libxml2-dev libjpeg62-dev libcups2-dev \<br />
wget libcurl4-gnutls-dev build-essential libxmu-dev libxi-dev libusb-1.0-0-dev \<br />
yasm<br />
<br />
These packages should cover everything you need for the entire system, including the graphical client and all scripting plugins.<br />
<br />
= Building Sirikata =<br />
<br />
We use CMake to generate our build scripts. Make is used on Mac and Linux and Visual Studio is used on Windows to perform the actual build. All three builds follow the same basic steps:<br />
* Run cmake, possibly modifying the configuration.<br />
* Run your build tool.<br />
<br />
== Windows ==<br />
<br />
Start up CMake and point both paths to sirikata/build/cmake. Hit configure twice. If you installed any dependencies in non-standard locations, point CMake to them now. To generate the build files, hit Generate.<br />
On Windows Vista or later you might want to change CMAKE_INSTALL_PREFIX to the directory where you want to install your compiled binaries and hit configure again, because by default CMake will generate Visual Studio project that will try to install compiled binaries into %PROGRAMFILES%. This requires administrative privileges, which is why build will fail (unless you run Visual Studio with administrative privileges or have disabled UAC).<br />
<br />
Now browse to sirikata/build/cmake. Open Sirikata.sln. Select the configuration you want to build -- we highly recommend RelWithDebInfo because Debug runs very slowly and RelWithDebInfo still gets you useful information when run in the debugger. Finally, run Build All.<br />
<br />
This should result in all libraries, plugins, and binaries in the sirikata/build/cmake/debug or sirikata/build/cmake release, depending on which configuration you built.<br />
<br />
=== Notes ===<br />
* There aren't standard locations to search for dependencies on Windows. Obviously we've setup the build system to work cleanly with the dependency install script. The easiest way to get a manual installation of dependencies on Windows to work is to use the same layout as the install script, where all dependencies are located in sirikata/dependencies. If you don't do this, you will almost certainly need to manually specify the locations of some libraries in CMake.<br />
* The build is known to work for VS2008, for both regular and Express versions.<br />
* If you get error 0xc0000022, check the permissions of the sirikata top-level directory. If you used Cygwin's version of git, it will remove execute permissions for security purposes. You may enable execute by doing "chmod -R +x sirikata" in cygwin, or Granting yourself Full Control in Right Click->Properties->Security (make sure to click the Replace All Entries in Child Objects checkbox).<br />
* Getting errors like "fatal error C1900: Il mismatch between 'P1' version '20080116' and 'P2' version '20070207'"? You're probably on Visual Studio Express 2008 and haven't updated to SP1.<br />
<br />
==== DLL Path under windows ====<br />
In order to get Sirikata to find the required DLLs, you must copy all DLL files from (at least) these directories into the "build/cmake/BUILDTYPE" directory, where BUILDTYPE is Debug, Release, or RelWithDebInfo:<br />
* dependencies\boost_1_37_0\lib<br />
* dependencies\installed-curl<br />
* dependencies\ogre-1.6.1\bin<br />
* dependencies\SDL-1.3.0\bin<br />
* dependencies\protobufs\bin<br />
<br />
Note that Sirikata currently does not work in Windows 2000, due to the lack of a few raw input functions (RegisterRawInputDevice) that SDL 1.3 uses. This will hopefully be fixed in SDL at some point to make it use the old DirectX raw input system.<br />
<br />
== Mac and Linux ==<br />
<br />
For convenience we provide a top level makefile which performs the standard build operations. If you want a default build and have used the install script for dependencies, do:<br />
<br />
cd sirikata/<br />
make<br />
<br />
If you'd like to run the build manually, do the following (essentially what is in the makefile):<br />
<br />
cd sirikata/build/cmake<br />
cmake . [-DCMAKE_BUILD_TYPE=Debug|Release]<br />
make<br />
<br />
To interactively adjust settings, for instance to point CMake to a different version of libraries:<br />
<br />
cd sirikata/build/cmake<br />
ccmake .<br />
<br />
When the build completes you should have the libraries, plugins, and binaries in sirikata/build/cmake.<br />
<br />
=== Additional Tools ===<br />
<br />
If you're planning on developing Sirikata, it can be helpful to use ccache or a distributed compiler tool like distcc. These tools speed up compilation, either avoiding duplicate work after running make clean or by distributed compile jobs across the network. We provide a wrapper script that tries to use these automatically. Instead of the steps above, use this script:<br />
<br />
cd sirikata/build/cmake<br />
rm CMakeCache.txt # We need to clear out old settings if you already ran CMake<br />
./cmake_with_tools.sh .<br />
<br />
The script passes other settings along to CMake, so you can add any parameters you would normally pass to CMake to this command as well.<br />
<br />
=== Mac XCode Project ===<br />
<br />
Many mac developers prefer to use the XCode programming environment.<br />
To do this, cmake will need to be configured to use XCode<br />
<br />
Steps are:<br />
<br />
1. test -d build/cmake/Debug || mkdir build/cmake/Debug<br />
1. The directory for XCode build products.<br />
2. python csv_converter.py build/cmake/Debug/scene.csv scene.db<br />
1. Generate a scene for use by the XCode project.<br />
3. cd build/cmake<br />
4. ln -s ../../dependencies/Frameworks Frameworks<br />
1. To fix brittle paths in Xcode project.<br />
5. cmake -G Xcode .<br />
6. cd Debug<br />
7. ln -s ../Sirikata.Protocol.dll Sirikata.Protocol.dll<br />
8. ln -s ../Sirikata.Runtime.dll Sirikata.Runtime.dll<br />
9. cd ..<br />
10. Launch Xcode<br />
11. Open Sirikata.xcodeproj<br />
12. Edit project settings<br />
1. General tab<br />
2. Choose project root<br />
3. Select build/cmake directory. Click OK. Value should just be <Project File Directory>.<br />
1. This fixes a problem that prevents debugger from working.<br />
13. Project menu<br />
1. Select active target ALL_BUILD<br />
2. Select active project executable cppoh<br />
3. Select active build configuration Debug<br />
14. Close XCode to save the project<br />
15. Reopen Sirikata.xcodeproj<br />
16. Build it<br />
17. Debugger<br />
1. Confirm that you can set a break point.<br />
2. Run debugger<br />
3. Confirm that it stops at a break point.<br />
4. Confirm that it displays source code.<br />
5. (trouble shoot back to step 10)<br />
<br />
= Running Sirikata =<br />
Assuming the previous steps have completed successfully, you should have a few binaries built and you are ready to [[Getting_Started_for_Users|run Sirikata]].</div>Bmistreehttps://www.sirikata.com/wiki/index.php?title=Roadmap&diff=962Roadmap2011-06-07T19:17:38Z<p>Bmistree: </p>
<hr />
<div>''This is the roadmap for summer 2011 and beyond'' <br />
<br />
[[Revised roadmap. 6.7.2011]]<br />
<br />
==Before Spring 2011==<br />
"These things are needed before undergrads start working with the system, may be as part of their independent study."<br />
<br />
* <del>Scriptable UI</del><br />
* <del>placement UI</del><br />
* application dev guide<br />
* lang guide<br />
* machines<br />
** cassandra/CDN<br />
** space servers<br />
** OHs<br />
** students<br />
* <del>emerson error reporting</del><br />
* <del>emerson rebooting objects</del><br />
<br />
<br />
==Before Summer 2011==<br />
<br />
*mesh processing for rendering performace<br />
*mesh upload the complete pipeline<br />
*pycollada dev ( library for reading collada files) <br />
**file save<br />
**filter pipelines<br />
<br />
*OGRE render perf<br />
*<del>non CRAQ OSEG</del><br />
*multi server deployment ( mostly testing)<br />
**scripts<br />
**monitoring<br />
*Emerson runtime/compiler bugs (not memory leaks)<br />
*Object storage<br />
*allocate objects on remote OH<br />
*Platform developers' guide<br />
<br />
<br />
==Nice to have in Summer 2011==<br />
<br />
*Emerson Ajax feature<br />
*animations<br />
*basic physics<br />
*stats service with web interface<br />
*scripting sessions<br />
*emerson regressions tests<br />
*transferring entities between OHs<br />
*Windows build<br />
** <del>buildbot restored to working order</del><br />
** binary distribution<br />
<br />
<br />
==Beyond summer 2011==<br />
*Audio<br />
*Animation<br />
*Authentication<br />
*Emerson memory issues<br />
*migrate entities between spaces<br />
*better aggregation approach (some implementation things)<br />
*resource contraints on scripts<br />
<br />
==Research Topics ==<br />
<br />
*Distributed spatially mixed audio<br />
*Distributed Physics<br />
*Distributed PInto <br />
*Pinto by num of objs<br />
*Space Server Splitting<br />
*Multicast<br />
*Trasport protocols for VW<br />
*Emerson/Language<br />
*object storage -> migration etc<br />
*better aggregation approach<br />
<br />
<br />
== Rest ==<br />
<br />
*Audio<br />
*Animation<br />
*Authentication<br />
*Emerson memory issues<br />
*migrate entities between spaces<br />
*better aggregation approach (some implementation things)<br />
*resource contraints on scripts</div>Bmistreehttps://www.sirikata.com/wiki/index.php?title=BuildTheCode&diff=939BuildTheCode2011-04-28T00:45:56Z<p>Bmistree: /* Linux */</p>
<hr />
<div>= Dependencies =<br />
<br />
Sirikata depends on quite a bit of external libraries. [[Dependencies]] gives a list of required and optional libraries and a brief description of how they are used.<br />
<br />
When building Sirikata you have two options: handle installing dependencies yourself or use our install scripts or precompiled binaries (depending on platform and library) to help you build and install the required libraries. If you want to perform the installation or need to write new scripts for a new platform, see [[Dependencies]] for instructions on how to do so.<br />
<br />
These instructions explain how to use our install script or precompiled binaries.<br />
<br />
{{note}} Some dependency files are quite large, especially the precompiled binaries. When you run the install commands, it may appear the script has hung, but its likely just checking out the packages.<br />
<br />
{{note}} Throughout we'll be using the standard set of dependencies, which includes support for graphics, embedded browsers, scripting languages, and physics simulation via Bullet. If you don't need all these features, for example because you are only running the space server, you can use a different dependency target. Where <tt>depends</tt> is used, you can replace the following to get a different set of dependencies:<br />
* <tt>minimal-depends</tt> - the minimal dependencies required to get the system building<br />
* <tt>minimal-graphics-depends</tt> - the minimal dependencies required to get 3D graphics working, i.e. to get a client running. Note that not all features of the client will be enabled by this<br />
* <tt>full-depends</tt> - all dependencies, enabling all features of the system, and enables use of root to install system packages<br />
<br />
== CMake ==<br />
<br />
We use CMake on all platforms to check for dependencies and generate a build script. The Linux dependencies will install CMake from your system's package manager if you allow it to use root. Otherwise and for all Mac and Windows platforms, CMake is not installed automatically. You should use the install tool from [http://www.cmake.org the CMake website] or install it using your system's package manager. CMake 2.6 or higher is required.<br />
<br />
{{note}} On OS X, when the installer asks if you want to install the command-line version of the tools, say '''yes'''. While our build system can be run through the GUI, some dependencies also use CMake and you do not want to have to perform those install steps manually.<br />
<br />
== Subversion ==<br />
<br />
Because of their size, dependencies are stored in subversion repositories. If you want to use our automated dependency scripts, you'll need Subversion installed. It is installed on Mac by default, Linux users can use their distributions system package, and Windows users can either install it via Cygwin or use [http://tortoisesvn.tigris.org/ TortoiseSVN].<br />
<br />
== Simple Method: Makefile ==<br />
On all platforms, if you have the right tools (make and subversion, on Windows provided by Cygwin) a Makefile is provided in the root directory which checks out and either builds or extracts dependencies to <tt>sirikata/dependencies/</tt>:<br />
<br />
cd sirikata/<br />
make depends<br />
<br />
== Windows Notes ==<br />
The simple method requires Cygwin. All dependencies are installed locally in the Sirikata checkout. No root access is needed.<br />
<br />
{{note}} The Windows dependencies support Visual Studio 2008 and later, including Express editions. Visual Studio 2005 and earlier are no longer supported.<br />
<br />
=== Without Cygwin (manual) ===<br />
If you do not have Cygwin and do not want to install it, you can perform the steps manually. Using a subversion client, checkout<br />
http://sirikatawin32.googlecode.com/svn/trunk/ <br />
to <tt>sirikata/dependencies/</tt>.<br />
<br />
Go into the dependencies folder and unzip all of the packages directly into the dependencies directory. Make sure to select "Extract Here". If that option is not available, remove the name of the zip file from the end to indicate where to extract, so it just ends with "dependencies". The extracted directories should not have the same name as the zip files.<br />
<br />
== Mac ==<br />
<br />
=== Snow Leopard ===<br />
<br />
With the release of Apple's Snow Leopard (10.6) operating system comes the opportunity to have software compiled for two different architectures running on the same machine. These are the 32-bit i386 and the 64-bit x86_64 (k8). Though the Intel hardware has always had the capability to run in a 64 bit address space prior to 10.6, the operating system didn't support it. Unfortunately, the default architecture is 64, but not all libraries and dependencies are 64-bit savvy, so it is best to compile for the 32 bit architecture.<br />
<br />
===== XCode and Developer Tools =====<br />
<br />
You need '''XCode Tools 3.2.x''' to build Sirikata. You can install these in parallel to XCode 4.0 if you already have that version. In particular, you need gcc-4.0 and g++-4.0. Version 4.2 won't work.<br />
<br />
You can either download XCode at [http://developer.apple.com/mac] or use the Snow Leopard DVD: under “Optional Installs”, install “Xcode.mpkg” to get 3.2. Use all default options. We highly recommend at least 3.2.2 as previous versions had issues with hanging.<br />
<br />
{{note}} If you already installed XCode 4, then gcc and g++ were upgraded to version 4.2. The simplest course of action is to (re)install XCode 3.2 in parallel from [http://connect.apple.com/cgi-bin/WebObjects/MemberSite.woa/wo/5.1.17.2.1.3.3.1.0.1.1.0.3.3.3.3.1 here] -- the setup should work fine next to XCode 4. You might be able to get by just by copying the old files (gcc-4.0 and g++-4.0) from /Developer-old/usr/bin back to /Developer/usr/bin, but this probably won't work for Snow Leopard (OS X 10.6).<br />
<br />
You may get errors of the following form: "CMake Error: The following variables are used in this project, but they are set to NOTFOUND." For the Boost_INCLUDE_DIR variable, you can edit CMakeCache.txt to set the variable to the directory containing the Boost header files. It should be something like sirikata/dependencies/boost_1_45_0/boost.<br />
<br />
== Linux ==<br />
The install script expects an Ubuntu system, 8.04 or greater.<br />
<br />
If you want to install the system package dependencies directly, issue the following command:<br />
<br />
sudo apt-get install \<br />
git-core cmake sed unzip zip automake1.9 nvidia-cg-toolkit jam g++ \<br />
libzzip-dev libxt-dev libxaw7-dev libxxf86vm-dev libxrandr-dev libfreetype6-dev \<br />
libxext-dev autoconf libtool libpcre3-dev flex bison patch libbz2-dev gawk \<br />
libglu1-mesa-dev tofrodos libglut3-dev freeglut3-dev scons libexpat1-dev \<br />
libgtk2.0-dev libnss3-dev libgconf2-dev gperf libasound2-dev subversion \<br />
libtool autoconf ruby flex libgsl0-dev libssl-dev libspeex-dev libxss-dev \<br />
libdbus-glib-1-dev libgnome-keyring-dev libxml2-dev libjpeg62-dev libcups2-dev \<br />
wget libcurl4-gnutls-dev<br />
<br />
These packages should cover everything you need for the entire system, including the graphical client and all scripting plugins.<br />
<br />
= Building Sirikata =<br />
<br />
We use CMake to generate our build scripts. Make is used on Mac and Linux and Visual Studio is used on Windows to perform the actual build. All three builds follow the same basic steps:<br />
* Run cmake, possibly modifying the configuration.<br />
* Run your build tool.<br />
<br />
== Windows ==<br />
<br />
Start up CMake and point both paths to sirikata/build/cmake. Hit configure twice. If you installed any dependencies in non-standard locations, point CMake to them now. To generate the build files, hit Generate.<br />
On Windows Vista or later you might want to change CMAKE_INSTALL_PREFIX to the directory where you want to install your compiled binaries and hit configure again, because by default CMake will generate Visual Studio project that will try to install compiled binaries into %PROGRAMFILES%. This requires administrative privileges, which is why build will fail (unless you run Visual Studio with administrative privileges or have disabled UAC).<br />
<br />
Now browse to sirikata/build/cmake. Open Sirikata.sln and run Build All.<br />
<br />
This should result in all libraries, plugins, and binaries in the sirikata/build/cmake/debug or sirikata/build/cmake release, depending on which configuration you built.<br />
<br />
=== Notes ===<br />
* There aren't standard locations to search for dependencies on Windows. Obviously we've setup the build system to work cleanly with the dependency install script. The easiest way to get a manual installation of dependencies on Windows to work is to use the same layout as the install script, where all dependencies are located in sirikata/dependencies. If you don't do this, you will almost certainly need to manually specify the locations of some libraries in CMake.<br />
* The build is known to work for VS2008, for both regular and Express versions.<br />
* If you get error 0xc0000022, check the permissions of the sirikata top-level directory. If you used Cygwin's version of git, it will remove execute permissions for security purposes. You may enable execute by doing "chmod -R +x sirikata" in cygwin, or Granting yourself Full Control in Right Click->Properties->Security (make sure to click the Replace All Entries in Child Objects checkbox).<br />
<br />
==== DLL Path under windows ====<br />
In order to get Sirikata to find the required DLLs, you must copy all DLL files from these directories into the "build/cmake" directory:<br />
* dependencies\boost_1_37_0\lib<br />
* dependencies\installed-curl<br />
* dependencies\ogre-1.6.1\bin<br />
* dependencies\SDL-1.3.0\bin<br />
* dependencies\protobufs\bin<br />
<br />
Note that Sirikata currently does not work in Windows 2000, due to the lack of a few raw input functions (RegisterRawInputDevice) that SDL 1.3 uses. This will hopefully be fixed in SDL at some point to make it use the old DirectX raw input system.<br />
<br />
== Mac and Linux ==<br />
<br />
For convenience we provide a top level makefile which performs the standard build operations. If you want a default build and have used the install script for dependencies, do:<br />
<br />
cd sirikata/<br />
make<br />
<br />
If you'd like to run the build manually, do the following (essentially what is in the makefile):<br />
<br />
cd sirikata/build/cmake<br />
cmake . [-DCMAKE_BUILD_TYPE=Debug|Release]<br />
make<br />
<br />
To interactively adjust settings, for instance to point CMake to a different version of libraries:<br />
<br />
cd sirikata/build/cmake<br />
ccmake .<br />
<br />
When the build completes you should have the libraries, plugins, and binaries in sirikata/build/cmake.<br />
<br />
=== Additional Tools ===<br />
<br />
If you're planning on developing Sirikata, it can be helpful to use ccache or a distributed compiler tool like distcc. These tools speed up compilation, either avoiding duplicate work after running make clean or by distributed compile jobs across the network. We provide a wrapper script that tries to use these automatically. Instead of the steps above, use this script:<br />
<br />
cd sirikata/build/cmake<br />
rm CMakeCache.txt # We need to clear out old settings if you already ran CMake<br />
./cmake_with_tools.sh .<br />
<br />
The script passes other settings along to CMake, so you can add any parameters you would normally pass to CMake to this command as well.<br />
<br />
=== Mac XCode Project ===<br />
<br />
Many mac developers prefer to use the XCode programming environment.<br />
To do this, cmake will need to be configured to use XCode<br />
<br />
Steps are:<br />
<br />
1. test -d build/cmake/Debug || mkdir build/cmake/Debug<br />
1. The directory for XCode build products.<br />
2. python csv_converter.py build/cmake/Debug/scene.csv scene.db<br />
1. Generate a scene for use by the XCode project.<br />
3. cd build/cmake<br />
4. ln -s ../../dependencies/Frameworks Frameworks<br />
1. To fix brittle paths in Xcode project.<br />
5. cmake -G Xcode .<br />
6. cd Debug<br />
7. ln -s ../Sirikata.Protocol.dll Sirikata.Protocol.dll<br />
8. ln -s ../Sirikata.Runtime.dll Sirikata.Runtime.dll<br />
9. cd ..<br />
10. Launch Xcode<br />
11. Open Sirikata.xcodeproj<br />
12. Edit project settings<br />
1. General tab<br />
2. Choose project root<br />
3. Select build/cmake directory. Click OK. Value should just be <Project File Directory>.<br />
1. This fixes a problem that prevents debugger from working.<br />
13. Project menu<br />
1. Select active target ALL_BUILD<br />
2. Select active project executable cppoh<br />
3. Select active build configuration Debug<br />
14. Close XCode to save the project<br />
15. Reopen Sirikata.xcodeproj<br />
16. Build it<br />
17. Debugger<br />
1. Confirm that you can set a break point.<br />
2. Run debugger<br />
3. Confirm that it stops at a break point.<br />
4. Confirm that it displays source code.<br />
5. (trouble shoot back to step 10)<br />
<br />
= Running Sirikata =<br />
Assuming the previous steps have completed successfully, you should have a few binaries built and you are ready to [[Running Sirikata|run Sirikata]].</div>Bmistreehttps://www.sirikata.com/wiki/index.php?title=4.12.2011:_First_Feedback&diff=9224.12.2011: First Feedback2011-04-12T22:56:42Z<p>Bmistree: /* Problems encountered while trying to script */</p>
<hr />
<div>==Problems encountered while trying to script ==<br />
<br />
* Crashes after 3-5 minutes.<br />
* Unnatural to use solid angle query. Would have wanted a "tell me who's within X meters of me".<br />
* Several quaternion functions are either broken or provided incorrect results. <br />
* We don't know JavaScript. Could we buy some JS books to help us out? <br />
* Want to support a more structured development cycle:<br />
** Save script.<br />
** Load script into entity.<br />
** Modify script.<br />
** Reset entity to script.<br />
** What is the ui flow?<br />
** Can you replay?<br />
* It's irritating to enter "new util." to create new Vec3s and Quaternions. Nicer syntax would be appreciated.<br />
* Want to print the fields/methods of presences.<br />
* For a one-off solid angle query, will the system tell me that I have received all visibles? How will I know if there are more to come?<br />
* It would be nice to be able to use multiple movement buttons at the same time.<br />
* Documentation for Emerson files is still missing.<br />
* Intel graphics cards still render super-slowly.<br />
* Mac build isn't working.<br />
* My presence stops moving if I hit a key up.<br />
<br />
==Other==<br />
* Can we use one of your computers to script things if ours doesn't work?<br />
* I got a camera to spin around!<br />
* I created a torus of insect birds!<br />
* I'm trying to filter solid angle queries to give me distance queries.<br />
* It's weird to pass around functions as arguments.<br />
* Jeff recommends some JavaScript tutorials: http://eloquentjavascript.net/chapter4.html and http://eloquentjavascript.net/contents.html.</div>Bmistreehttps://www.sirikata.com/wiki/index.php?title=4.12.2011:_First_Feedback&diff=9214.12.2011: First Feedback2011-04-12T22:55:27Z<p>Bmistree: </p>
<hr />
<div>==Problems encountered while trying to script ==<br />
<br />
* Crashes after 3-5 minutes.<br />
* Unnatural to use solid angle query. Would have wanted a "tell me who's within X meters of me".<br />
* Several quaternion functions are either broken or provided incorrect results. <br />
* We don't know JavaScript. Could we buy some JS books to help us out? <br />
* Want to support a more structured development cycle:<br />
** Save script.<br />
** Load script into entity.<br />
** Modify script.<br />
** Reset entity to script.<br />
** What is the ui flow?<br />
** Can you replay?<br />
* It's irritating to enter "new util." to create new Vec3s and Quaternions. Nicer syntax would be appreciated.<br />
* Want to print the fields/methods of presences.<br />
* For a one-off solid angle query, will the system tell me that I have received all visibles? How will I know if there are more to come?<br />
* It would be nice to be able to use multiple movement buttons at the same time.<br />
* Documentation for Emerson files.<br />
* Intel graphics cards still render super-slowly.<br />
* Mac build isn't working.<br />
* My presence stops moving if I hit a key up.<br />
<br />
==Other==<br />
* Can we use one of your computers to script things if ours doesn't work?<br />
* I got a camera to spin around!<br />
* I created a torus of insect birds!<br />
* I'm trying to filter solid angle queries to give me distance queries.<br />
* It's weird to pass around functions as arguments.<br />
* Jeff recommends some JavaScript tutorials: http://eloquentjavascript.net/chapter4.html and http://eloquentjavascript.net/contents.html.</div>Bmistreehttps://www.sirikata.com/wiki/index.php?title=4.12.2011:_First_Feedback&diff=9204.12.2011: First Feedback2011-04-12T22:55:02Z<p>Bmistree: /* Problems encountered while trying to script */</p>
<hr />
<div>==Problems encountered while trying to script ==<br />
<br />
* Crashes after 3-5 minutes.<br />
* Unnatural to use solid angle query. Would have wanted a "tell me who's within X meters of me".<br />
* Several quaternion functions are either broken or provided incorrect results. <br />
* We don't know JavaScript. Could we buy some JS books to help us out? <br />
* Want to support a more structured development cycle:<br />
** Save script.<br />
** Load script into entity.<br />
** Modify script.<br />
** Reset entity to script.<br />
** What is the ui flow?<br />
** Can you replay?<br />
* It's irritating to enter "new util." to create new Vec3s and Quaternions. Nicer syntax would be appreciated.<br />
* Want to print the fields/methods of presences.<br />
* For a one-off solid angle query, will the system tell me that I have received all visibles? How will I know if there are more to come?<br />
* It would be nice to be able to use multiple movement buttons at the same time.<br />
* Documentation for Emerson files.<br />
* Intel graphics cards still render super-slowly.<br />
* Mac build isn't working.<br />
* My presence stops moving if I hit a key up.<br />
<br />
==Other==<br />
* Can we use one of your computers to script things if ours doesn't work?<br />
* I got a camera to spin around!<br />
* I created a torus of insect birds!<br />
* I'm trying to filter solid angle queries to give me distance queries.<br />
* It's weird to pass around functions as arguments.<br />
* Jeff recommends some JavaScript tutorials: http://eloquentjavascript.net/chapter4.html and http://eloquentjavascript.net/contents.html.</div>Bmistreehttps://www.sirikata.com/wiki/index.php?title=4.12.2011:_First_Feedback&diff=9194.12.2011: First Feedback2011-04-12T22:54:13Z<p>Bmistree: </p>
<hr />
<div>==Problems encountered while trying to script ==<br />
<br />
* Crashes after 3-5 minutes.<br />
* Unnatural to use solid angle query. Would have wanted a "tell me who's within X meters of me".<br />
* Several quaternion functions are either broken or provided incorrect results. <br />
* We don't know JavaScript. Could we buy some JS books to help us out? <br />
* Want to support a more structured development cycle:<br />
**Save script.<br />
**Load script into entity.<br />
**Modify script.<br />
**Reset entity to script.<br />
**What is the ui flow?<br />
**Can you replay?<br />
* It's irritating to enter "new util." to create new Vec3s and Quaternions. Nicer syntax would be appreciated.<br />
* Want to print the fields/methods of presences.<br />
* For a one-off solid angle query, will the system tell me that I have received all visibles? How will I know if there are more to come?<br />
* It would be nice to be able to use multiple movement buttons at the same time.<br />
* Documentation for Emerson files.<br />
* Intel graphics cards still render super-slowly.<br />
* Mac build isn't working.<br />
* My presence stops moving if I hit a key up.<br />
<br />
==Other==<br />
* Can we use one of your computers to script things if ours doesn't work?<br />
* I got a camera to spin around!<br />
* I created a torus of insect birds!<br />
* I'm trying to filter solid angle queries to give me distance queries.<br />
* It's weird to pass around functions as arguments.<br />
* Jeff recommends some JavaScript tutorials: http://eloquentjavascript.net/chapter4.html and http://eloquentjavascript.net/contents.html.</div>Bmistreehttps://www.sirikata.com/wiki/index.php?title=4.12.2011:_First_Feedback&diff=9184.12.2011: First Feedback2011-04-12T22:47:57Z<p>Bmistree: Created page with "==Problems encountered while trying to script == * Crashes after 3-5 minutes. * Unnatural to use solid angle query. Would have wanted a "tell me who's within X meters of me". *..."</p>
<hr />
<div>==Problems encountered while trying to script ==<br />
<br />
* Crashes after 3-5 minutes.<br />
* Unnatural to use solid angle query. Would have wanted a "tell me who's within X meters of me".<br />
* Several quaternion functions are either broken or provided incorrect results. <br />
* We don't know JavaScript. Could we buy some JS books to help us out? <br />
* Want to support a more structured development cycle:<br />
**Save script.<br />
**Load script into entity.<br />
**Modify script.<br />
**Reset entity to script.<br />
**What is the ui flow?<br />
**Can you replay?<br />
* It's irritating to enter "new util." to create new Vec3s and Quaternions. Nicer syntax would be appreciated.<br />
* Want to print the fields/methods of presences.<br />
* For a one-off solid angle query, will the system tell me that I have received all visibles? How will I know if there are more to come?<br />
* It would be nice to be able to use multiple movement buttons at the same time.<br />
* Documentation for Emerson files.</div>Bmistreehttps://www.sirikata.com/wiki/index.php?title=Meru-curis&diff=917Meru-curis2011-04-12T22:40:13Z<p>Bmistree: /* Meeting Summaries */</p>
<hr />
<div>__NOTOC__<br />
Meru CURIS summer 2011 wiki. Currently, not a lot of content and fairly bare bones. Feel free to fix that.<br />
<br />
== Internal Pages == <br />
* [[List of ideas for applications]]<br />
* [[List of ideas for tools]]<br />
<br />
== Meeting Summaries ==<br />
* [[4.1.2011: The Brainstorm]]<br />
* [[4.12.2011: First Feedback]]<br />
<br />
== Documentation ==<br />
* [http://sirikata.com/docs/guides/appguide/ Application Developer Guide]<br />
* [http://sirikata.com/docs/guides/ Overall system]<br />
<br />
<br />
== Contacts ==<br />
* Phil Levis: pal at cs dot stanford dot edu<br />
* Ewen Cheslack-Postava: ewencp at stanford dot edu<br />
* Behram Mistree: bmistree at stanford dot edu<br />
* Bhupesh Chandra: bhupc at stanford dot edu <br />
<br />
* Stanford email list: meru-curis at lists dot stanford dot edu<br />
* [http://groups.google.com/group/emerson-users Emerson Google group]</div>Bmistreehttps://www.sirikata.com/wiki/index.php?title=4.1.2011:_The_Brainstorm&diff=8734.1.2011: The Brainstorm2011-04-04T18:29:58Z<p>Bmistree: Created page with " == Explosions (without physics?) == How would you get a number of objects to react as if there had been a nearby explosion? * Ewen * Alex == Portals/portkeys == Touch obje..."</p>
<hr />
<div><br />
<br />
== Explosions (without physics?) ==<br />
How would you get a number of objects to react as if there had been a nearby explosion?<br />
<br />
* Ewen<br />
* Alex<br />
<br />
<br />
== Portals/portkeys ==<br />
Touch object, teleport elsewhere<br />
<br />
== Trains ==<br />
Hijack them, run them down a track, etc.<br />
<br />
* Alex<br />
* Ben<br />
<br />
<br />
== Birds/Bees ==<br />
Swarming, dipping, diving.<br />
<br />
<br />
== Cops and robbers/simple adversarial game ==<br />
Maybe has tag-your-it type semantics. Maybe more advanced.<br />
* Ewen<br />
* Angela <br />
* Emily<br />
<br />
== Katamari ==<br />
http://en.wikipedia.org/wiki/Katamari_Damacy<br />
<br />
* Alex<br />
<br />
== Audio ==<br />
Allow scripters to send sound files and play them on other side.<br />
<br />
* Sarah<br />
<br />
== UI ==<br />
General ui improvement. Scripting window, etc.<br />
<br />
* Kotaro<br />
* Stacey<br />
<br />
== Eraser ==<br />
Way to easily remove objects in the world<br />
<br />
== CDN Pipeline ==<br />
<br />
== Assassins == <br />
Game.<br />
* Ewen<br />
* Angela<br />
* Ben<br />
<br />
== Flying, walking, running, jumping ==<br />
* Kotaro<br />
* Ben<br />
<br />
== Set avatar's own mesh ==<br />
Customize appearance of avatar.<br />
* Angela<br />
* Emily<br />
* Sarah<br />
<br />
== Avatar physics ==<br />
<br />
* Stacey<br />
<br />
== Compose animations ==<br />
Make it easy for scripters to move between animations.<br />
<br />
* Kotaro<br />
<br />
== Dictionary of avatar actions ==<br />
Create an ontology/dictionary of avatar actions (eg. typing, dancing, etc.).<br />
<br />
* Kotaro<br />
<br />
== Auto-gen "similar" objects ==<br />
Leverage/improve/incorporate graphics tool that takes in a small number of objects and spits out a larger number of "similar" objects.<br />
* Stacey<br />
<br />
== Tour guide ==<br />
How do you find interesting places in the world?<br />
<br />
== Collaborative coding ==<br />
* Elliot<br />
* Stacey<br />
* Behram<br />
<br />
== Visualize entity state ==<br />
<br />
<br />
== Virtual World 2.0 ==<br />
Incorporate external social media such as Twitter, Facebook into virtual world.<br />
<br />
== Non-mesh displays ==<br />
For instance, getting text to appear above avatars when they're typing.<br />
* Alex<br />
<br />
== Browse web via world ==<br />
What would wikipedia look like in a virtual world?<br />
<br />
== Visualizing world/minimap/crawler ==<br />
* Alex<br />
* Angela<br />
* Sarah<br />
<br />
== Art gallery ==<br />
<br />
== Merchants/commerce ==<br />
<br />
== Clone tool ==<br />
Take an object in the virtual world, and make it easy to clone it and instantiate it somewhere else.</div>Bmistreehttps://www.sirikata.com/wiki/index.php?title=Meru-curis&diff=872Meru-curis2011-04-04T18:08:12Z<p>Bmistree: </p>
<hr />
<div>Meru CURIS summer 2011 wiki. Currently, not a lot of content and fairly bare bones. Feel free to fix that.<br />
<br />
== Internal pages == <br />
* [[List of ideas for applications]]<br />
* [[List of ideas for tools]]<br />
<br />
== Meeting summaries ==<br />
* [[4.1.2011: The Brainstorm]]<br />
<br />
== Documentation: ==<br />
* [http://sirikata.com/docs/guides/appguide/ Application Developer Guide]<br />
* [http://sirikata.com/docs/guides/ Overall system]<br />
<br />
<br />
== Contacts: ==<br />
* Phil Levis: pal at cs dot stanford dot edu<br />
* Ewen Cheslack-Postava: ewencp at stanford dot edu<br />
* Behram Mistree: bmistree at stanford dot edu<br />
* Bhupesh Chandra: bhupc at stanford dot edu <br />
<br />
* Stanford email list: meru-curis at lists dot stanford dot edu<br />
* [http://groups.google.com/group/emerson-users Emerson Google group]</div>Bmistreehttps://www.sirikata.com/wiki/index.php?title=List_of_ideas_for_tools&diff=833List of ideas for tools2011-03-17T22:24:13Z<p>Bmistree: </p>
<hr />
<div>We'd like to build a few tools for the overall system in addition to creating Emerson applications. Here's the start of a list of potential tool projects. Ideas should be expanded on, and, if they get too large, pushed to separate pages.<br />
<br />
<br />
<br />
* Tools to monitor the space server<br />
* Tools to monitor the object host<br />
* Tools to interface wiki with Emerson error reporting<br />
* Improving content conditioning pipeline<br />
* Graph/visualization of entity state. (An Emerson inspector akin to JS debugging tools.)</div>Bmistreehttps://www.sirikata.com/wiki/index.php?title=List_of_ideas_for_tools&diff=831List of ideas for tools2011-03-16T21:27:12Z<p>Bmistree: Created page with "We'd like to build a few tools for the overall system in addition to creating Emerson applications. Here's the start of a list of potential tool projects. Ideas should be expan..."</p>
<hr />
<div>We'd like to build a few tools for the overall system in addition to creating Emerson applications. Here's the start of a list of potential tool projects. Ideas should be expanded on, and, if they get too large, pushed to separate pages.<br />
<br />
<br />
<br />
* Tools to monitor the space server<br />
* Tools to monitor the object host<br />
* Tools to interface wiki with Emerson error reporting<br />
* Improving content conditioning pipeline</div>Bmistreehttps://www.sirikata.com/wiki/index.php?title=List_of_ideas_for_applications&diff=830List of ideas for applications2011-03-16T21:25:04Z<p>Bmistree: Created page with "This is a list of applications that might be interesting to build in a virtual world using the Emerson scripting language. Add more. If it takes a while to describe them, then ..."</p>
<hr />
<div>This is a list of applications that might be interesting to build in a virtual world using the Emerson scripting language. Add more. If it takes a while to describe them, then create a new page for them.<br />
<br />
* A taxi service<br />
* A bulletin board that renders live twitter streams</div>Bmistreehttps://www.sirikata.com/wiki/index.php?title=Meru-curis&diff=829Meru-curis2011-03-16T21:22:22Z<p>Bmistree: </p>
<hr />
<div>Meru CURIS summer 2011 wiki. Currently, not a lot of content and fairly bare bones. Feel free to fix that.<br />
<br />
== Internal pages == <br />
* [[List of ideas for applications]]<br />
* [[List of ideas for tools]]<br />
<br />
<br />
== Documentation: ==<br />
* Application Developer Guide: http://sirikata.com/docs/head/guides/appguide/<br />
* Overall system: http://sirikata.com/docs/head/guides/<br />
<br />
<br />
== Contacts: ==<br />
* Phil Levis: pal at cs dot stanford dot edu<br />
* Ewen Cheslack-Postava: ewencp at stanford dot edu<br />
* Behram Mistree: bmistree at stanford dot edu<br />
* Bhupesh Chandra: bhupc at stanford dot edu <br />
<br />
* Stanford email list: meru-curis at lists dot stanford dot edu<br />
* Emerson Google group: http://groups.google.com/group/emerson-users</div>Bmistreehttps://www.sirikata.com/wiki/index.php?title=Meru-curis&diff=828Meru-curis2011-03-16T21:22:03Z<p>Bmistree: </p>
<hr />
<div>Meru CURIS summer 2011 wiki. Currently, not a lot of content and fairly bare bones. Feel free to fix that.<br />
<br />
== Internal pages == <br />
* [[List of ideas for applications]]List of ideas for applications<br />
* List of ideas for tools<br />
<br />
<br />
== Documentation: ==<br />
* Application Developer Guide: http://sirikata.com/docs/head/guides/appguide/<br />
* Overall system: http://sirikata.com/docs/head/guides/<br />
<br />
<br />
== Contacts: ==<br />
* Phil Levis: pal at cs dot stanford dot edu<br />
* Ewen Cheslack-Postava: ewencp at stanford dot edu<br />
* Behram Mistree: bmistree at stanford dot edu<br />
* Bhupesh Chandra: bhupc at stanford dot edu <br />
<br />
* Stanford email list: meru-curis at lists dot stanford dot edu<br />
* Emerson Google group: http://groups.google.com/group/emerson-users</div>Bmistreehttps://www.sirikata.com/wiki/index.php?title=Meru-curis&diff=827Meru-curis2011-03-16T21:21:30Z<p>Bmistree: </p>
<hr />
<div>Meru CURIS summer 2011 wiki. Currently, not a lot of content and fairly bare bones. Feel free to fix that.<br />
<br />
== Internal pages == <br />
* List of ideas for applications<br />
* List of ideas for tools<br />
<br />
<br />
== Documentation: ==<br />
* Application Developer Guide: http://sirikata.com/docs/head/guides/appguide/<br />
* Overall system: http://sirikata.com/docs/head/guides/<br />
<br />
<br />
== Contacts: ==<br />
* Phil Levis: pal at cs dot stanford dot edu<br />
* Ewen Cheslack-Postava: ewencp at stanford dot edu<br />
* Behram Mistree: bmistree at stanford dot edu<br />
* Bhupesh Chandra: bhupc at stanford dot edu <br />
<br />
* Stanford email list: meru-curis at lists dot stanford dot edu<br />
* Emerson Google group: http://groups.google.com/group/emerson-users</div>Bmistreehttps://www.sirikata.com/wiki/index.php?title=Meru-curis&diff=826Meru-curis2011-03-16T21:20:20Z<p>Bmistree: </p>
<hr />
<div>Meru CURIS summer 2011<br />
<br />
== Internal pages == <br />
* List of ideas for applications<br />
* List of ideas for tools<br />
<br />
<br />
== Documentation: ==<br />
* Application Developer Guide: http://sirikata.com/docs/head/guides/appguide/<br />
* Overall system: http://sirikata.com/docs/head/guides/<br />
<br />
<br />
== Contacts: ==<br />
* Phil Levis: pal at cs dot stanford dot edu<br />
* Ewen Cheslack-Postava: ewencp at stanford dot edu<br />
* Behram Mistree: bmistree at stanford dot edu<br />
* Bhupesh Chandra: bhupc at stanford dot edu <br />
<br />
* Stanford email list: meru-curis at lists dot stanford dot edu<br />
* Emerson Google group: http://groups.google.com/group/emerson-users</div>Bmistreehttps://www.sirikata.com/wiki/index.php?title=Meru-curis&diff=825Meru-curis2011-03-16T21:18:40Z<p>Bmistree: </p>
<hr />
<div>Meru CURIS summer 2011<br />
<br />
== Internal pages == <br />
* List of ideas for applications<br />
<br />
<br />
== Documentation: ==<br />
* Application Developer Guide: http://sirikata.com/docs/head/guides/appguide/<br />
* Overall system: http://sirikata.com/docs/head/guides/<br />
<br />
<br />
== Contacts: ==<br />
* Phil Levis: pal at cs dot stanford dot edu<br />
* Ewen Cheslack-Postava: ewencp at stanford dot edu<br />
* Behram Mistree: bmistree at stanford dot edu<br />
* Bhupesh Chandra: bhupc at stanford dot edu <br />
<br />
* Stanford email list: meru-curis at lists dot stanford dot edu<br />
* Emerson Google group: http://groups.google.com/group/emerson-users</div>Bmistreehttps://www.sirikata.com/wiki/index.php?title=Meru-curis&diff=824Meru-curis2011-03-16T21:17:07Z<p>Bmistree: </p>
<hr />
<div>Meru CURIS summer 2011<br />
<br />
<br />
Documentation:<br />
* Application Developer Guide: http://sirikata.com/docs/head/guides/appguide/<br />
* Overall system: http://sirikata.com/docs/head/guides/<br />
<br />
<br />
Contacts:<br />
* Phil Levis: pal at cs dot stanford dot edu<br />
* Ewen Cheslack-Postava: ewencp at stanford dot edu<br />
* Behram Mistree: bmistree at stanford dot edu<br />
* Bhupesh Chandra: bhupc at stanford dot edu <br />
<br />
* Stanford email list: meru-curis at lists dot stanford dot edu<br />
* Emerson Google group: http://groups.google.com/group/emerson-users</div>Bmistreehttps://www.sirikata.com/wiki/index.php?title=Meru-curis&diff=823Meru-curis2011-03-16T21:15:19Z<p>Bmistree: Created page with "Meru CURIS summer 2011 Documentation: Application Developer Guide: http://sirikata.com/docs/head/guides/appguide/ Overall system: http://sirikata.com/docs/head/guides/ Con..."</p>
<hr />
<div>Meru CURIS summer 2011<br />
<br />
<br />
Documentation:<br />
Application Developer Guide: http://sirikata.com/docs/head/guides/appguide/<br />
Overall system: http://sirikata.com/docs/head/guides/<br />
<br />
<br />
Contacts:<br />
Phil Levis: pal at cs dot stanford dot edu<br />
Ewen Cheslack-Postava: ewencp at stanford dot edu<br />
Behram Mistree: bmistree at stanford dot edu<br />
Bhupesh Chandra: bhupc at stanford dot edu <br />
<br />
Stanford email list: meru-curis at lists dot stanford dot edu<br />
Emerson Google group: http://groups.google.com/group/emerson-users</div>Bmistreehttps://www.sirikata.com/wiki/index.php?title=Main_Page&diff=814Main Page2011-03-04T02:04:21Z<p>Bmistree: /* Contact */</p>
<hr />
<div><big>''Welcome to the Sirikata Wiki</big><br />
<br />
== What is Sirikata? ==<br />
* Sirikata is an BSD licensed open source platform for games and virtual worlds. We aim to provide a set of libraries and protocols which can be used to deploy a virtual world, as well as fully featured sample implementations of services for hosting and deploying these worlds.<br />
* Check out our [http://vimeo.com/sirikata Vimeo Channel] for videos of and about Sirikata. We'll post demos and presentations about the system and applications there.<br />
<br />
== Community ==<br />
We encourage everyone to join our [http://groups.google.com/group/open-platform-community community mailing list] or read [http://groups.google.com/group/open-platform-community/topics our open archives]. This list list intended for the broader topics regarding Sirikata and collaborative 3D spaces. <br />
<br />
=== Platform Developers ===<br />
<br />
Sirikata is a platform for building virtual world applications such as games, meeting spaces, and social worlds. Platform developers work on Sirikata itself, creating the infrastructure and plugins used by applications to run the world. Applications developers then glue the necessary components together and can focus on any additional policies and scripting needed to run their world.<br />
<br />
* [[Platform Developers|Platform Developers starting page]] is how you learn about Sirikata's architecture and getting involved in it's development. To jump in at the deep end: [[GetTheCode|Check out]] and [[BuildTheCode|build]] the code.<br />
* [[Communication|Developer Communication]] is the place to find the conversations<br />
* [[CodingProjects|Coding Projects]] gives you ideas for something to sink your teeth into<br />
* [[Documentation|Documentation]] is very much a work in progress but this is an overview what we currently have<br />
* [[Roadmap|Roadmap]] is what we are planning in the near and far term<br />
<br />
=== Content Developers ===<br />
<br />
* Our artists community communicate on our [http://groups.google.com/group/sirikata-art-list art list]. Check out the [http://groups.google.com/group/sirikata-art-list/topics open archives].<br />
* [[Content Creation]] explains how to import and handle content in Sirikata<br />
* [[Software Tutorials]] is a list of tutorials, not directly related to the import pipeline, that will help make your content look great<br />
* [[Control Guide]] has the latest info on navigation and manipulation of the system<br />
* The video [http://vimeo.com/3324273 Sirikata from a content creator's point of view] is a great to place to get a sense of visions for the space<br />
<br />
=== Events ===<br />
Upcoming meetings in meat space will be announced on the [[Events|events]] page and past meetings will be documented there.<br />
<br />
==Contact==<br />
<br />
If you want a live chat then some community members, especially developers, hang out on [[IRC|IRC]]. ([http://en.wikipedia.org/wiki/Internet_Relay_Chat Wikipedia article on IRC])</div>Bmistree