Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Experimental region server for virtual worlds
C++ C Other
branch: master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
assets
bullet
inventory
libopenjpeg
.gitattributes
CMakeLists.txt
CONTRIBUTORS.OpenSim.txt
HACKING
HACKING.LSL
HACKING.VM
LICENSE.txt
NOTE
README.txt
caj_helpers.h
caj_llsd.c
caj_llsd.h
caj_llsd_test.c
caj_logging.cpp
caj_logging.h
caj_lsl_compile.cpp
caj_lsl_parse.h
caj_omv.h
caj_omv_udp.cpp
caj_parse_nini.c
caj_parse_nini.h
caj_script.h
caj_scripting.cpp
caj_types.cpp
caj_types.h
caj_version.c.in
caj_version.h
caj_vm.cpp
caj_vm.h
caj_vm_asm.h
caj_vm_internal.h
caj_vm_make_insns.py
cajeput_anims.c
cajeput_anims.h
cajeput_assets.cpp
cajeput_caps.cpp
cajeput_core.h
cajeput_dump.cpp
cajeput_evqueue.cpp
cajeput_grid_glue.h
cajeput_hooks.cpp
cajeput_int.h
cajeput_inventory.cpp
cajeput_j2k.c
cajeput_j2k.h
cajeput_j2k_test.c
cajeput_main.cpp
cajeput_plugin.h
cajeput_prim.h
cajeput_user.cpp
cajeput_user.h
cajeput_user_glue.h
cajeput_world.cpp
cajeput_world.h
euclid.lsl
glib.supp
lsl.lex
lsl.y
lsl_consts.py
make_caj_version.sh
make_circle.py
make_release_tarball.sh
message_template.msg
msgtmpl2c.py
msgtmpl_core.py
opcode_data.txt
opensim_asset_glue.cpp
opensim_grid_glue.cpp
opensim_grid_glue.h
opensim_intersim.cpp
opensim_inventory_glue.cpp
opensim_robust_xml.cpp
opensim_robust_xml.h
opensim_xinventory_glue.cpp
opensim_xml_glue.cpp
opensim_xml_glue.h
physics_bullet.cpp
runtime_funcs.lsl
server.ini.example
server.ini.standalone
sim-release-notes.html
sl_udp_proto.c
sl_udp_proto.h
standalone_grid_plugin.cpp
terrain_compress.c
terrain_compress.h

README.txt

This is Cajeput, a 3D virtual world server mostly compatible with OpenSim and
Second Life.

WARNING! This is very alpha software! Don't blame me if it eats your data, 
trashes your system, or murders your pets! (Seriously, you probably will get at
least a little data loss when using it right now.)

Compiling
---------
For now, Cajeput is only released as source code. In order to compile it, you
will need the following:

- A Linux or Unix system. Cajeput currently doesn't run on Windows.
- A working C++ compiler and toolchain.
- The development headers for the following packages:
  * libuuid
  * glib 2, minimum version unknown
  * json-glib 0.7.6 or later
  * libxml2 2.7.3 or later
  * SQLite 3.6.19 or later
  * libsoup 2.28.1 or later

Once you've got all that, run the following commands:
  cmake .
  make

Cajeput should be run from the build directory; installing it is not currently
supported. 

Getting Started
---------------

So, you've compiled Cajeput. Now you want to actually run it, which means 
configuring it. How to do this depends on whether you're running a standalone 
region or one connected to some external grid.

Connecting to a grid:

 Copy the sample config file server.ini.example to server.ini. You'll need to 
 fill in various details in the [grid] section:
  - The user server, grid server, inventory server and asset server URLs.
    If you're running an up-to-date local OpenSim grid server with the default 
    settings, you shouldn't have to change these. If connecting to a third-party
    grid, get these details from the grid's website or owner.
  - Which protocols the servers speak (new_userserver and use_xinventory).
    OpenSim 0.7 or later requires new_userserver=true and usually 
    use_xinventory=true too. OSGrid currently needs both to be set to false, 
    and other third-party grids probably require the same.
  - All the common details below.

Running a standalone region:

 Copy the sample config server.ini.standalone to server.ini, then fill in the
 common details as described below. You'll also need to add a user.
 [TODO]: Create an easy way of adding a user.

Common to both standalone and grid mode:

 Under [simgroup], you need to fill in:
  - The IP address of the region. If you're running a standalone region for 
    your own use, leave this at 127.0.0.1
  - The http port to use. Unless you're running another region or other 
    conflicting software, leave this at the default of 9000.
  - If you're running more than one sim, you need to edit the list of sims. 
    For example, if you have two sims with sections [sim foo] and [sim bar],
    put "sims=foo;bar"

 Under the [sim test] section for each sim, you need to:
  - Optionally replace "test" in the section header with a short name for the sim.
    If you're running more than one sim, each must have a different short name.
  - Set the UDP port for the sim. Again, unless you're running more than one sim, 
    the default UDP port of 9000 should work.
  - Set the position of the sim on the grid. The settings are multiplied by 256
    metres, so x=1000,y=1000 and x=1001,y=1000 are neighbouring regions.
  - Generate a *unique* UUID for the sim using the uuidgen command and add it
    to the config. Again, this must be unique for each sim! You may have to 
    install uuidgen.
  - Set the full name of the sim. Unlike the short name, this cannot be the 
    same as any sim anywhere on the grid, including sims run by other people.

You're now ready to start Cajeput. Cross your fingers and run ./cajeput_sim.
Hopefully it should start up OK. If you're running a standalone server, you 
should now set http://<your IP>:<your HTTP port>/ as the login URI. 
To shutdown Cajeput, press Ctrl-C *once* and wait. Pressing Ctrl-C again will 
kill Cajeput without saving any changes!
Something went wrong with that request. Please try again.