ThingJS:元宇宙的低零代码实践(元宇宙代码是多少)
6月23日,由中国计算机学会主办的CCF TF 第62期研讨会于线上成功举办。本次研讨会在线深入探讨了元宇宙数字化底座的三大支柱技术——空间重建、三维人动作捕捉重建和数字孪生,分析它们的技术价值、演化路径与发展方向。
作为数字孪生领域专家,UINO优锘科技ThingJS PaaS平台负责人沈祎岗受邀参与,分享了UINO优锘探索元宇宙的低零代码实践——ThingJS。
去年,“元宇宙”成为热门话题,频繁进入大家视野,但其实它并不是一个全新概念,跟很多新概念一样,元宇宙也是从原有的一些概念衍生出来的。UINO优锘认为元宇宙其实就是数字化进程到了更深度的阶段,使得虚拟世界和真实世界开始呈现深度的融合,真实世界越来越虚拟化,虚拟世界越来越真实化。
虚拟世界的真实化简单可以理解为,人们在虚拟世界的自然体验更加真实化,游戏、社交平台等从2D走向3D,从屏幕走向VR,通过AR/MR进入现实,这都是虚拟世界真实化的一方面。另一方面,随着比特币等虚拟货币的兴起,能够让数字世界里的虚拟资产实体化,并且具有唯一性的关键技术基础也逐渐成熟,这也是虚拟世界真实化的重要演进。
而真实世界虚拟化,一是生产资料虚拟化,二是生产活动虚拟化,这意味着我们会在元宇宙中通过物联网实现万物互联,将真实世界中的每一个东西进行数字化,通过3D可视化的方式,把现实生活里的场景、应用,映射到虚拟世界里,让其更加生动、自然地呈现出来。而UINO优锘一直在做的数字孪生本质上就是将真实世界虚拟化,其实就是在走向元宇宙。
那UINO优锘在推动元宇宙发展做了什么事情?UINO优锘自主研发了一个数字孪生引擎ThingJS,并且基于ThingJS引擎打造了一系列数字孪生工具链,以低零代码的方式,助力降低数字孪生应用的成本。
01ThingJS发展历程
2012年,UINO优锘就开始做数字孪生应用,当然那个时候数字孪生这个概念还没有兴起,当时UINO优锘的认知很简单,我们认为未来一定是万物可视的,直到2015年,UINO优锘才开始意识到在做的就是一一映射且有真实数据驱动的数字孪生。
所以这10年里,UINO优锘经历了两个阶段,第一个阶段0到1,我们从金融行业的数据中心三维可视化系统开始做起,慢慢地覆盖到各行各业,在这个过程中积累了各行业的数字孪生应用尝试。
在掌握了一定的数字孪生应用开发的技术和经验时,我们开始意识到数字孪生应用是要一直这样不断地去拓展各行各业的应用吗?如果是这样,那仅凭UINO优锘一家企业是做不到的,所以UINO优锘希望把这些年积累下来的数字孪生开发能力工具化、平台化,让更多的行业合作伙伴能够利用这些工具平台去完成他们的数字孪生应用。
那1到2的过程开始时间比较早,2014年我们推出了第一个数字孪生工具模模搭,它是一个3D场景搭建工具,当时,模模搭能够立即搭建一个简单的3D场景,可以对接数据,通过API调用来构建一个应用,并且还可以去对接各种第三方的现成应用系统。最开始就是这样一个概念,自此之后的三年内,我们都在利用该工具去做一些样板项目,来验证我们的技术链条,同时验证利用平台化方式去做3D可视化开发这件事是否成立。
到了2018年,我们基于WebGL推出了ThingJS引擎。首先ThingJS的“Thing”代表它是面向物联网应用的,其次 “JS”很明确,3D引擎对外的API标准就是JS语言,只要会前端的工程师都可以进行开发。
今年,我们又在ThingJS引擎基础上推出了全新数字孪生工具集ThingStudio森工厂,我们把它称之为UINO 2.2。森工厂里有很多数字孪生工具,比如森数据,用来把真实世界里产生的物联网数据对接到数字孪生世界,或是对接到元宇宙里;森城市工具可以帮助大家快速地构建一个3D城市;森园区可以帮大家能够快速的构建一个园区级的数字孪生应用;森大屏是一个拖拉拽轻松搭建可视化大屏平台;森拓扑可快速绘制物联网、工业组态、IT运维、流程图等多场景下的拓扑图。
森工厂网址:studio.thingjs.com
就像上图展现的一样,森工厂类似一个数字孪生应用生产车间,当然我们还提供了很多数字孪生资源库,里面有模型、插件等资源,能够更方便大家去快速构建数字孪生应用。
02ThingJS 2.0 功能再升级
接下来给大家详细讲一讲ThingJS引擎的一些最新进展。2018 年,为了让更多伙伴,能轻松开发物联网「3D可视化应用」,我们推出了ThingJS API 1.0版。通过高度的功能封装,让没有 3D 开发经验的人,也能快速开发出自己想要的物联网3D可视化应用。从而做到,真正铲平3D可视化开发门槛。
ThingJS API 1.0经过三年持续开发我们发现了需要升级的方向,在2020年底开始API 2.0的研发,并于今年第一季度推出了API 2.0 beta版。API 2.0 在性能、架构、功能上实现了全面的进化,成为更适合数字孪生应用的引擎。
1、API进化
开放更多适用于数字孪生应用的接口功能,接口开放量再创新高。
①一方面,将这些接口的开发逻辑简化,使其更易用,来提升开发效率;
②另一方面,开放接口总量已经超过1000个,相比1.0 已增加了45%新功能,未来还会持续增加更多新的能力。
2、架构进化
之前,ThingJS API 1.0 的开发者只能自己找方法去扩展和复用功能,没有提供推荐方式。现在,API 2.0 进行了模块化架构升级,当API功能不满足需求时,可以很容易的通过组件、插件、预制件等方式灵活扩展,一切都交给开发者,自由掌控组件的生命周期;还提供了插件的方式,可以对一个独立的功能模块进行复用,如电梯、停车场;还提供了预制件,可以预先准备好一个具有功能的物体模板,使用时候拿起就用。
3、引擎进化
基于升级版架构,ThingJS API 1.0将渲染和逻辑分离,渲染时可以做到在UE/Unity/WebGL之间实现一键动态切换,切换后可充分发挥各渲染引擎的性能优势。
除了以上的三大功能升级外,也会有一些小的特色项的升级,比如:
为了降低使用门槛,ThingJS API 2.0 通过封装,简化了很多工作,在物体数量非常多时,为了使用批量渲染,其他WebGL引擎可能要写超过1000行的代码,以适配不同的渲染效果、和控制方式,而在ThingJS API 2.0 中只需要一行代码,就可以实现。
ThingJS API 2.0 增强了GIS能力,对于超大型城市和地理场景,不仅轻松解决了「视锥体」裁剪导致的地形缺失问题,更能轻松完成地球以及地球表面物体的渲染,且占用更少内存,进一步提升了超大型场景的渲染性能。
ThingJS API 2.0增强了水面渲染的调节能力,相较于1.0增加了环境贴图/调节水面波浪/调节反射比率/调节倒影扭曲等能力, 效果上更加真实。
同时,我们还提供了仿真水面,通常必须通过流体力学、专业计算软件计算才能实现的效果,我们在webGL端就能实现实时计算和渲染,这是UINO优锘的专利算法。
在地形渲染时,经常遇到业务数据需要和地形紧密贴合的情况,因此,ThingJS API 2.0增加了贴地形线 & 贴地面功能,以满足用户不同的业务应用需求。
03ThingJS未来展望
未来,我们将利用ThingJS引擎升级版架构,快速支持最新的技术WebGPU,并且ThingJS开发者们不需要做任何的修改操作,就可以体验WebGPU带来的新的能力提升。此外ThingJS API 2.0还将在接下来的1年内,持续补充以下功能:
- 支持物理系统,提供更多仿真应用所需要的能力
- 支持WebXR,让大家可以轻松构建自己的Web端VR、AR应用
- 支持节点式材质编辑器,方便大家自定义自己想要的材质效果
- 在2022年底前,逐步将T3D渲染引擎和ThingJS API 2.0 开源,让T3D和ThingJS加速发展,成为众创引擎
- ……
ThingJS创立之初就希望面向开发者开放所有能力,与各行业专家一起构建海量、垂直的数字孪生可视化应用。从2018年ThingJS发版到现在,已经有用了50万 注册用户,我们也期待听到大家的意见,不断优化升级ThingJS功能,和大家一起探索元宇宙。