Giter Club home page Giter Club logo

viki-library's Introduction

A virtual reality library for collaborative browsing and navigation through hypertext


Conference version latest

Abstract

Viki LibraRy, is a first implementation for generating and exploring online information based on hypertext systems in a three-dimensional environment using virtual reality. Thereby a virtual library, based on Wikipedia, is created, in which Rooms are dynamically created with data, which is provided via a RESTful backend. In these Rooms the user can browse through all kind of different articles of the category in the form of Books. In addition, users can access different Rooms, through virtual portals. Beyond that, the explorations can be done alone or collaboratively, using Ubiq.

In medias res

Viki LibraRy in action Room under construction
image image
Excerpt from Viki LibraRy: Reading the Wikipedia article of “Rome” as a Book together with another user. In the background stairs to other Rooms as well as other Rooms on the same floor are shown. Room "Geography" under construction from an outside view, where the players can then traverse in and experience the Category "Geography" of Wikipedia in VR.

Showcase

Viki LibraRy

Installation

  1. Clone this repository
  2. Get the latest release from GitHub. This contains the Unity project
  3. In the repository, direct to the Java/viki_library_apiserver folder. Open the maven project with an IDE of your liking, install the Maven dependencies with e.g. mvn install.
  4. There are config files missing in the Java project since we cannot push credentials into the GitHub repo. You have to manually add them to fit your enviroment. To do so:
  • Create a new folder under Java/viki_library_apiserver/src called 'resources'. The src folder should now contain 'resources' and 'java'. In the resources folder create the following files:
  • spark-swagger.conf: Configures swagger. Refer to Default file values for default configurations.
  • wikiApiConfig.properties: Configures the API. If you didn't add a new API source and just use the default Wikipedia API, refer to Default file values for the default content.
  • vikiLibraRyDbConfig.properties: Configures the MongoDB used for caching fetched API calls. You need to provide your own MongoDB credentials and then fill the content in the scheme given under Default file values
  1. Now you can start the Java server. Default port should be 8080
  2. Open the Unity project in Unity downloaded from the Release tab in GitHub (Make sure you have version 2021.3.25f1 installed or a version that is compatible with it). Viki LibraRy works on Desktop as well, but was designed for VR so plug in your VR-Device as well.
  3. Open the APISandbox Scene.
  4. There should be a gameobject Enviroment\ScriptHolder. In that gameobject, a script is attached with a property called "API Parameters". Make sure that the API Parameters 'Element 1' is correctly set. It should contain the base url for the afore started Java web server. If you started the Java server locally and didn't change the port, this should be correct by default.
  5. Start the project in Unity and you are set to go!

Default file values

Swagger config:

spark-swagger {

  # UI related configs
  theme = "MATERIAL"
  deepLinking = false
  displayOperationId = false
  defaultModelsExpandDepth = 1
  defaultModelExpandDepth = 1
  defaultModelRendering = "model"
  displayRequestDuration = false
  docExpansion = "LIST"
  filter = true
  operationsSorter = "alpha"
  showExtensions = false
  showCommonExtensions = false
  tagsSorter = "alpha"


  # API related configs
  host = "localhost:8080"
  basePath = "/swagger"
  docPath = "/doc"
  info {
    description = "API designed to serve all network operations"
    version = "1.0.0"
    title = "VikiLibraRy API"
    termsOfService = ""
    schemes = ["HTTP", "HTTPS", "WS", "WSS"]
    project {
      groupId = "com.beerboy.thor"
      artifactId = "thor-hammer"
      version = "1.0.0"
    }
    contact {
      name = "Example Team"
      email = "[email protected]"
      url = "example.team.com"
    }
    license {
      name = "Apache 2.0"
      url = "http://www.apache.org/licenses/LICENSE-2.0.html"
    }
    externalDoc {
      description = "Example Doc"
      url="com.example.doc"
    }
  }
}

Wiki API config:

default_query_parameters = action=query&generator=categorymembers&prop=categories|categoryinfo|revisions&cllimit=max&gcmlimit=max&format=json&gcmtitle=Category:{CATEGORY}
default_page_text_parse_parameters = action=parse&pageid={PAGEID}&formatversion=2&format=json&prop=wikitext|revid
base_url = https://en.wikipedia.org/w/api.php?

MongoDB config:

remote_host = MY_HOST
remote_database = MY_DATABASE
remote_user = MY_USER
remote_password = MY_PW
remote_port = MY_PORT

Cite

If you want to use the project please quote this as follows:

Shaduan Babbili, Kevin Bönisch, Yannick Heinrich, Philipp Stephan, Giuseppe Abrami and Alexander Mehler. (2023). "Viki LibraRy: A Virtual Reality Library for Collaborative Browsing and Navigation through Hypertext." Proceedings of the 34th ACM Conference on Hypertext and Social Media.

BibTeX

@inproceedings{Babbili:et:al:2023,
  author    = {Babbili, Shaduan and B\"{o}nisch, Kevin and Heinrich, Yannick
               and Stephan, Philipp and Abrami, Giuseppe and Mehler, Alexander},
  title     = {Viki LibraRy: A Virtual Reality Library for Collaborative Browsing
               and Navigation through Hypertext},
  year      = {2023},
  isbn      = {9798400702327},
  publisher = {Association for Computing Machinery},
  address   = {New York, NY, USA},
  url       = {https://doi.org/10.1145/3603163.3609079},
  doi       = {10.1145/3603163.3609079},
  abstract  = {We present Viki LibraRy, a virtual-reality-based system for generating
               and exploring online information as a spatial hypertext. It creates
               a virtual library based on Wikipedia in which Rooms are used to
               make data available via a RESTful backend. In these Rooms, users
               can browse through all articles of the corresponding Wikipedia
               category in the form of Books. In addition, users can access different
               Rooms, through virtual portals. Beyond that, the explorations
               can be done alone or collaboratively, using Ubiq.},
  booktitle = {Proceedings of the 34th ACM Conference on Hypertext and Social Media},
  articleno = {6},
  numpages  = {3},
  keywords  = {virtual reality simulation, virtual reality, virtual hypertext, virtual museum},
  location  = {Rome, Italy},
  series    = {HT '23}
}

viki-library's People

Contributors

theitcrow avatar abrami avatar

Stargazers

 avatar  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.