Project Icon

janusweb

跨平台社交虚拟现实开发框架

JanusWeb是一个开源的Web框架,用于开发跨平台社交虚拟现实应用。该框架支持桌面、移动和VR设备,提供实时协作、3D音频和多种输入方式。基于WebGL和Three.js技术,支持Oculus Rift、HTC Vive等主流VR设备。开发者可使用HTML和JavaScript构建3D环境,支持导入主流3D文件格式,并提供API进行定制。内置网络功能便于开发多人在线虚拟环境,集成游戏手柄、Leap Motion等外设支持。JanusWeb为虚拟现实内容创作提供了开放且可扩展的开发平台,适合各类虚拟现实应用的快速开发和原型设计。

JanusWeb

用于构建社交虚拟现实体验的网络框架。

网站Vesta示例演示文档

示例

水晶球 增强感知 电影院 拖放 元游戏厅 豪宅

特性

  • 使用HTML和JS为桌面、移动和VR设备构建沉浸式3D环境
  • 通过Three.js / WebGL提供渲染功能
  • 通过WebVR API支持Oculus Rift、Vive、GearVR、Daydream和Cardboard
  • 通过内置网络实现所有设备的实时协作
  • 导入Collada、OBJ、glTF和其他流行的3D文件格式
  • 3D定位音频
  • 通过HTML5 Gamepad API支持游戏手柄
  • 支持Leap Motion、Oculus Touch和Vive控制器等手部追踪设备
  • 使用HTML5视频支持2D、sbs3d/ou3d和360度视频纹理
  • 可脚本化的客户端支持多种自定义用途

使用方法

根据您希望对整个系统的控制程度,可以通过几种不同的方式使用JanusWeb。

使用我们的查看器

我们的默认查看器始终可在https://web.janusvr.com/上使用。您可以编写一个包含[JanusVR标记](https://janusvr.com/docs/build/introtojml/index.html)的HTML页面,并将其托管在任何通常用于托管静态网站的地方。任何常规的网络主机、AWS S3静态站点、CDN,甚至更奇特的位置如IPFS分布式文件系统都可以使用。您甚至可以将标记放在PasteBin或PiratePad等网站上。然后只需在我们的查看器中通过在导航栏中输入URL来加载该URL,您就可以直接链接到它,在社交媒体上分享,或将我们的查看器直接嵌入其他网页、博客文章或文章中。

另请参阅下面的使用特定版本的JanusWeb

将我们的脚本引入您的页面

使用上述方法,所有链接都会通过我们的服务器。如果您更愿意链接到自己的服务器,可以将我们的JS引入您的页面,并通过其API将JanusWeb用作可脚本化的客户端。这看起来像这样:

<html>
  <head>
    <title>我的JanusVR房间</title>
  </head>
  <body>
    <script src="https://web.janusvr.com/janusweb.js"></script>
    <janus-viewer>
      <FireBoxRoom>
        <Room use_local_asset="room1">
          <Object id="cube" pos="0 1 5" />
          <Text col="1 0 0" pos="0 2 4">我的第一个房间</Text>
        </Room>
      </FireBoxRoom>
    </janus-viewer>
  </body>
</html>

elation.janusweb.init()函数可以接受多个参数,并返回一个promise,该promise接收客户端的实例。可以通过其API控制此客户端引用。请参阅下面的参数脚本编写部分。

另请参阅下面的使用特定版本的JanusWeb

从ZIP安装

(待完成 - 我们将在发布v1.0后开始提供JanusWeb的zip版本)

从NPM安装

(待完成 - 我们将在发布v1.0后开始提供JanusWeb的官方NPM包)

npm install janusweb

从源代码构建

如果您想从源代码构建JanusWeb,可以从Github上检出并按照以下步骤进行构建:

$ git clone https://github.com/jbaicoianu/janusweb
$ cd janusweb
$ npm install --only=prod
$ npm run build

这将在您的build/目录中提供最新版本JanusWeb的完整构建。然后您可以根据需要修改build/index.html,并按上述建议进行托管。

参数

JanusWeb在初始化时支持几个参数来控制其行为。

名称 描述 默认值
autoload 默认加载URL或等待脚本 true
crosshair 显示玩家准星 true
homepage 用户按下主页按钮时默认跳转的页面 https://web.janusvr.com/
networking 启用网络功能 true
picking 启用鼠标交互 true
resolution 如果指定,将渲染器限制为指定大小 (无)
server 要连接的存在服务器 wss://presence.janusvr.com:5567/
shownavigation 控制导航栏的可见性 true
showchat 控制聊天的可见性 true
stats 启用渲染性能统计 false
url 默认加载的页面 (homepage)
urltemplate 生成URL的可选模板 (无)
useWebVRPolyfill 启用WebVR polyfill以兼容移动电话 true
usevoip 启用或禁用VOIP功能 (注意 - 由于浏览器尚不支持通过WebAudio 使用Opus,目前已禁用) false

脚本编写

初始化客户端后,elation.janusweb.init()返回一个Promise,该Promise提供对客户端的引用。 您可以通过编程控制此客户端来执行各种操作。例如,我们可以让客户端加载一个URL,等待世界及其所有资产加载完成,然后在指定延迟后对世界进行截图:

var pageinfo = elation.utils.parseURL(document.location.href),
    urlargs = pageinfo.args || {},
    hashargs = pageinfo.hash || {};

var url = elation.utils.any(hashargs.url, urlargs.url, 'http://www.janusvr.com/index.html'),
    delay = elation.utils.any(hashargs.delay, urlargs.delay, 1000);

elation.janusweb.init({
  url: url,
  resolution: '1920x1080',
  showchat: false,
  shownavigation: false
}).then(function(client) {
  elation.events.add(client.janusweb.currentroom, 'room_load_complete', function() {
    setTimeout(function() {
      client.hideMenu();
      client.screenshot().then(function(imagefile) {
        // 通过XHR上传imagefile到某处
        console.log('截图完成!');
      });
    }, delay);
  });
});

JanusWeb客户端的许多其他方面也可以通过这种方式进行控制。我们的用户总是在想出使用JanusWeb客户端的新颖和创新方法。将它嵌入到你的博客文章中,用它在你的2D网页背后渲染3D内容,在你的虚拟世界中放置一个虚拟安全摄像头,并从任何网络浏览器查看虚拟世界的实时流。通过网络界面控制虚拟世界。这是你可以随心所欲使用的可编程实时元宇宙门户。可能性是无限的!

你甚至可以在NodeJS中运行JanusWeb进行无头服务器端操作。用它来编写一个在元宇宙中漫游的机器人,或者在服务器上运行你的游戏逻辑和物理引擎,为你的世界提供一个权威的状态来源。如果你对此感兴趣,请告诉我们,我们很乐意帮助你完成这个过程(目前这一切都处于实验阶段!)

使用特定版本的JanusWeb

如果你需要加载特定版本的JanusWeb,所有以前的版本都存储在同一服务器上,可以通过构建形如https://web.janusvr.com/<version>/的URL来访问。这在你有一个已知与特定版本兼容的房间时很有用,该房间依赖于已被弃用或更改的功能,或者用于确定是否引入了错误。

JanusWeb版本遵循语义化版本2.0.0规范,格式为<主版本>.<次版本>.<修订版本>。例如,在撰写本文时(2017年3月),当前的稳定版本是1.0.15。因此,如果你想查看这个版本,可以访问https://web.janusvr.com/1.0.15/,如果你想在页面中引入这个特定版本,可以使用``````。我们还支持最新版本的别名 - 例如,https://web.janusvr.com/1.0/将始终指向最新的1.0版本,https://web.janusvr.com/0.9/指向最终的0.9版本,等等。

贡献

JanusWeb是开源的,我们欢迎任何贡献!请使用GitHub Issues报告错误,所有的拉取请求都将被考虑。我们特别需要文档方面的帮助!

谁负责这个项目?

JanusWeb由James Baicoianu创建,现在是JanusVR公司的官方开源项目。JanusWeb软件及其API根据MIT许可证发布,可以免费用于你能想到的任何用途。如果你创建了什么很酷的东西,请告诉我们!

项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

吐司

探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。

Project Cover

SubCat字幕猫

SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。

Project Cover

美间AI

美间AI创意设计平台,利用前沿AI技术,为设计师和营销人员提供一站式设计解决方案。从智能海报到3D效果图,再到文案生成,美间让创意设计更简单、更高效。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号