{"id":4470,"date":"2016-04-20T14:25:06","date_gmt":"2016-04-20T18:25:06","guid":{"rendered":"http:\/\/labrigger.com\/blog\/?p=4470"},"modified":"2016-04-20T14:25:06","modified_gmt":"2016-04-20T18:25:06","slug":"virmen-virtual-reality-matlab-engine","status":"publish","type":"post","link":"http:\/\/labrigger.com\/blog\/2016\/04\/20\/virmen-virtual-reality-matlab-engine\/","title":{"rendered":"ViRMEn &#8211; Virtual reality MATLAB engine"},"content":{"rendered":"<p align=\"center\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/labrigger.com\/blog\/wp-content\/uploads\/2016\/04\/vi.png\" alt=\"vi\" width=\"949\" height=\"554\" class=\"alignnone size-full wp-image-4471\" srcset=\"http:\/\/labrigger.com\/blog\/wp-content\/uploads\/2016\/04\/vi.png 949w, http:\/\/labrigger.com\/blog\/wp-content\/uploads\/2016\/04\/vi-300x175.png 300w, http:\/\/labrigger.com\/blog\/wp-content\/uploads\/2016\/04\/vi-768x448.png 768w\" sizes=\"auto, (max-width: 949px) 100vw, 949px\" \/><\/p>\n<p><a href=\"https:\/\/pni.princeton.edu\/directory\/dmitriy-aronov\">Dmitriy Aronov<\/a>, while postdocing in David Tank&#8217;s lab at Princeton, developed <a href=\"https:\/\/pni.princeton.edu\/pni-software-tools\/virmen-virtual-reality-matlab-engine\">a virtual reality engine that runs in MATLAB called ViRMEn<\/a>. It&#8217;s open and there&#8217;s a good amount of documentation. The <a href=\"https:\/\/webspace.princeton.edu\/xythoswfs\/webview\/fileManager.action?stk=8B8EED96BF462F7&#038;entryName=%2Fusers%2Fdaronov%2FViRMEn&#038;msgStatus=\">downloadable versions<\/a> date back to 2013, and it is regularly updated. The most recent update as of the writing of this blog post was Feb 12, 2016, about 2 months ago.<\/p>\n<blockquote><p>\nWelcome to ViRMEn \u2013 the Virtual Reality MATLAB Engine. ViRMEn is a MATLAB-based software package that contains 3 components:<br \/>\n1. A graphical user interface (GUI) for interactively designing virtual environments (worlds).<br \/>\n2. An engine that performs 3D rendering of worlds on a computer monitor or projector.<br \/>\n3. An object-oriented toolbox for manipulating worlds programmatically outside of the GUI.<br \/>\n<br \/>\nViRMEn achieves fast graphics by directly accessing low-level OpenGL commands instead of using built-in MATLAB functions. The engine also recognizes physical boundaries in virtual worlds and performs continuous-time collision detection to manage the animal\u2019s contact with these boundaries.<br \/>\n<br \/>\nViRMEn is designed to be highly customizable. The engine can apply arbitrary spatial transformations to virtual worlds to display them on practically any type of screen (flat, conical, toroidal, etc.). The engine can also access any type of an input device (such as an optical mouse or a rotary encoder) to obtain the animal\u2019s movement information. Finally, the engine runs custom user-written MATLAB code that can implement experiment logic, reward delivery, data logging, etc.<\/p><\/blockquote>\n<p><em>Hat tip to Tristan Heintz (Lagnado lab @ Sussex).<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p align=\"center\">\n<p><a href=\"https:\/\/pni.princeton.edu\/directory\/dmitriy-aronov\">Dmitriy Aronov<\/a>, while postdocing in David Tank&#8217;s lab at Princeton, developed <a href=\"https:\/\/pni.princeton.edu\/pni-software-tools\/virmen-virtual-reality-matlab-engine\">a virtual reality engine that runs in MATLAB called ViRMEn<\/a>. It&#8217;s open and there&#8217;s a good amount of documentation. The&#8230;<\/p>\n<div class=\"read-more\"><a href=\"http:\/\/labrigger.com\/blog\/2016\/04\/20\/virmen-virtual-reality-matlab-engine\/\">Read More<\/a><\/div><\/p>\n","protected":false},"author":1,"featured_media":4471,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[7],"tags":[18,26],"class_list":["post-4470","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-software","tag-behavior","tag-matlab"],"_links":{"self":[{"href":"http:\/\/labrigger.com\/blog\/wp-json\/wp\/v2\/posts\/4470","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/labrigger.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/labrigger.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/labrigger.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/labrigger.com\/blog\/wp-json\/wp\/v2\/comments?post=4470"}],"version-history":[{"count":5,"href":"http:\/\/labrigger.com\/blog\/wp-json\/wp\/v2\/posts\/4470\/revisions"}],"predecessor-version":[{"id":4476,"href":"http:\/\/labrigger.com\/blog\/wp-json\/wp\/v2\/posts\/4470\/revisions\/4476"}],"wp:featuredmedia":[{"embeddable":true,"href":"http:\/\/labrigger.com\/blog\/wp-json\/wp\/v2\/media\/4471"}],"wp:attachment":[{"href":"http:\/\/labrigger.com\/blog\/wp-json\/wp\/v2\/media?parent=4470"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/labrigger.com\/blog\/wp-json\/wp\/v2\/categories?post=4470"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/labrigger.com\/blog\/wp-json\/wp\/v2\/tags?post=4470"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}