ThingJS:元宇宙的低零代碼實(shí)踐(元宇宙代碼是多少)
6月23日,由中國計(jì)算機(jī)學(xué)會主辦的CCF TF 第62期研討會于線上成功舉辦。本次研討會在線深入探討了元宇宙數(shù)字化底座的三大支柱技術(shù)——空間重建、三維人動作捕捉重建和數(shù)字孿生,分析它們的技術(shù)價(jià)值、演化路徑與發(fā)展方向。
作為數(shù)字孿生領(lǐng)域?qū)<遥?/span>UINO優(yōu)锘科技ThingJS PaaS平臺負(fù)責(zé)人沈祎崗受邀參與,分享了UINO優(yōu)锘探索元宇宙的低零代碼實(shí)踐——ThingJS。
去年,“元宇宙”成為熱門話題,頻繁進(jìn)入大家視野,但其實(shí)它并不是一個(gè)全新概念,跟很多新概念一樣,元宇宙也是從原有的一些概念衍生出來的。UINO優(yōu)锘認(rèn)為元宇宙其實(shí)就是數(shù)字化進(jìn)程到了更深度的階段,使得虛擬世界和真實(shí)世界開始呈現(xiàn)深度的融合,真實(shí)世界越來越虛擬化,虛擬世界越來越真實(shí)化。
虛擬世界的真實(shí)化簡單可以理解為,人們在虛擬世界的自然體驗(yàn)更加真實(shí)化,游戲、社交平臺等從2D走向3D,從屏幕走向VR,通過AR/MR進(jìn)入現(xiàn)實(shí),這都是虛擬世界真實(shí)化的一方面。另一方面,隨著比特幣等虛擬貨幣的興起,能夠讓數(shù)字世界里的虛擬資產(chǎn)實(shí)體化,并且具有唯一性的關(guān)鍵技術(shù)基礎(chǔ)也逐漸成熟,這也是虛擬世界真實(shí)化的重要演進(jìn)。
而真實(shí)世界虛擬化,一是生產(chǎn)資料虛擬化,二是生產(chǎn)活動虛擬化,這意味著我們會在元宇宙中通過物聯(lián)網(wǎng)實(shí)現(xiàn)萬物互聯(lián),將真實(shí)世界中的每一個(gè)東西進(jìn)行數(shù)字化,通過3D可視化的方式,把現(xiàn)實(shí)生活里的場景、應(yīng)用,映射到虛擬世界里,讓其更加生動、自然地呈現(xiàn)出來。而UINO優(yōu)锘一直在做的數(shù)字孿生本質(zhì)上就是將真實(shí)世界虛擬化,其實(shí)就是在走向元宇宙。
那UINO優(yōu)锘在推動元宇宙發(fā)展做了什么事情?UINO優(yōu)锘自主研發(fā)了一個(gè)數(shù)字孿生引擎ThingJS,并且基于ThingJS引擎打造了一系列數(shù)字孿生工具鏈,以低零代碼的方式,助力降低數(shù)字孿生應(yīng)用的成本。
01ThingJS發(fā)展歷程
2012年,UINO優(yōu)锘就開始做數(shù)字孿生應(yīng)用,當(dāng)然那個(gè)時(shí)候數(shù)字孿生這個(gè)概念還沒有興起,當(dāng)時(shí)UINO優(yōu)锘的認(rèn)知很簡單,我們認(rèn)為未來一定是萬物可視的,直到2015年,UINO優(yōu)锘才開始意識到在做的就是一一映射且有真實(shí)數(shù)據(jù)驅(qū)動的數(shù)字孿生。
所以這10年里,UINO優(yōu)锘經(jīng)歷了兩個(gè)階段,第一個(gè)階段0到1,我們從金融行業(yè)的數(shù)據(jù)中心三維可視化系統(tǒng)開始做起,慢慢地覆蓋到各行各業(yè),在這個(gè)過程中積累了各行業(yè)的數(shù)字孿生應(yīng)用嘗試。
在掌握了一定的數(shù)字孿生應(yīng)用開發(fā)的技術(shù)和經(jīng)驗(yàn)時(shí),我們開始意識到數(shù)字孿生應(yīng)用是要一直這樣不斷地去拓展各行各業(yè)的應(yīng)用嗎?如果是這樣,那僅憑UINO優(yōu)锘一家企業(yè)是做不到的,所以UINO優(yōu)锘希望把這些年積累下來的數(shù)字孿生開發(fā)能力工具化、平臺化,讓更多的行業(yè)合作伙伴能夠利用這些工具平臺去完成他們的數(shù)字孿生應(yīng)用。
那1到2的過程開始時(shí)間比較早,2014年我們推出了第一個(gè)數(shù)字孿生工具模模搭,它是一個(gè)3D場景搭建工具,當(dāng)時(shí),模模搭能夠立即搭建一個(gè)簡單的3D場景,可以對接數(shù)據(jù),通過API調(diào)用來構(gòu)建一個(gè)應(yīng)用,并且還可以去對接各種第三方的現(xiàn)成應(yīng)用系統(tǒng)。最開始就是這樣一個(gè)概念,自此之后的三年內(nèi),我們都在利用該工具去做一些樣板項(xiàng)目,來驗(yàn)證我們的技術(shù)鏈條,同時(shí)驗(yàn)證利用平臺化方式去做3D可視化開發(fā)這件事是否成立。
到了2018年,我們基于WebGL推出了ThingJS引擎。首先ThingJS的“Thing”代表它是面向物聯(lián)網(wǎng)應(yīng)用的,其次 “JS”很明確,3D引擎對外的API標(biāo)準(zhǔn)就是JS語言,只要會前端的工程師都可以進(jìn)行開發(fā)。
今年,我們又在ThingJS引擎基礎(chǔ)上推出了全新數(shù)字孿生工具集ThingStudio森工廠,我們把它稱之為UINO 2.2。森工廠里有很多數(shù)字孿生工具,比如森數(shù)據(jù),用來把真實(shí)世界里產(chǎn)生的物聯(lián)網(wǎng)數(shù)據(jù)對接到數(shù)字孿生世界,或是對接到元宇宙里;森城市工具可以幫助大家快速地構(gòu)建一個(gè)3D城市;森園區(qū)可以幫大家能夠快速的構(gòu)建一個(gè)園區(qū)級的數(shù)字孿生應(yīng)用;森大屏是一個(gè)拖拉拽輕松搭建可視化大屏平臺;森拓?fù)淇煽焖倮L制物聯(lián)網(wǎng)、工業(yè)組態(tài)、IT運(yùn)維、流程圖等多場景下的拓?fù)鋱D。
森工廠網(wǎng)址:studio.thingjs.com
就像上圖展現(xiàn)的一樣,森工廠類似一個(gè)數(shù)字孿生應(yīng)用生產(chǎn)車間,當(dāng)然我們還提供了很多數(shù)字孿生資源庫,里面有模型、插件等資源,能夠更方便大家去快速構(gòu)建數(shù)字孿生應(yīng)用。
02ThingJS 2.0 功能再升級
接下來給大家詳細(xì)講一講ThingJS引擎的一些最新進(jìn)展。2018 年,為了讓更多伙伴,能輕松開發(fā)物聯(lián)網(wǎng)「3D可視化應(yīng)用」,我們推出了ThingJS API 1.0版。通過高度的功能封裝,讓沒有 3D 開發(fā)經(jīng)驗(yàn)的人,也能快速開發(fā)出自己想要的物聯(lián)網(wǎng)3D可視化應(yīng)用。從而做到,真正鏟平3D可視化開發(fā)門檻。
ThingJS API 1.0經(jīng)過三年持續(xù)開發(fā)我們發(fā)現(xiàn)了需要升級的方向,在2020年底開始API 2.0的研發(fā),并于今年第一季度推出了API 2.0 beta版。API 2.0 在性能、架構(gòu)、功能上實(shí)現(xiàn)了全面的進(jìn)化,成為更適合數(shù)字孿生應(yīng)用的引擎。
1、API進(jìn)化
開放更多適用于數(shù)字孿生應(yīng)用的接口功能,接口開放量再創(chuàng)新高。
①一方面,將這些接口的開發(fā)邏輯簡化,使其更易用,來提升開發(fā)效率;
②另一方面,開放接口總量已經(jīng)超過1000個(gè),相比1.0 已增加了45%新功能,未來還會持續(xù)增加更多新的能力。
2、架構(gòu)進(jìn)化
之前,ThingJS API 1.0 的開發(fā)者只能自己找方法去擴(kuò)展和復(fù)用功能,沒有提供推薦方式。現(xiàn)在,API 2.0 進(jìn)行了模塊化架構(gòu)升級,當(dāng)API功能不滿足需求時(shí),可以很容易的通過組件、插件、預(yù)制件等方式靈活擴(kuò)展,一切都交給開發(fā)者,自由掌控組件的生命周期;還提供了插件的方式,可以對一個(gè)獨(dú)立的功能模塊進(jìn)行復(fù)用,如電梯、停車場;還提供了預(yù)制件,可以預(yù)先準(zhǔn)備好一個(gè)具有功能的物體模板,使用時(shí)候拿起就用。
3、引擎進(jìn)化
基于升級版架構(gòu),ThingJS API 1.0將渲染和邏輯分離,渲染時(shí)可以做到在UE/Unity/WebGL之間實(shí)現(xiàn)一鍵動態(tài)切換,切換后可充分發(fā)揮各渲染引擎的性能優(yōu)勢。
除了以上的三大功能升級外,也會有一些小的特色項(xiàng)的升級,比如:
為了降低使用門檻,ThingJS API 2.0 通過封裝,簡化了很多工作,在物體數(shù)量非常多時(shí),為了使用批量渲染,其他WebGL引擎可能要寫超過1000行的代碼,以適配不同的渲染效果、和控制方式,而在ThingJS API 2.0 中只需要一行代碼,就可以實(shí)現(xiàn)。
ThingJS API 2.0 增強(qiáng)了GIS能力,對于超大型城市和地理場景,不僅輕松解決了「視錐體」裁剪導(dǎo)致的地形缺失問題,更能輕松完成地球以及地球表面物體的渲染,且占用更少內(nèi)存,進(jìn)一步提升了超大型場景的渲染性能。
ThingJS API 2.0增強(qiáng)了水面渲染的調(diào)節(jié)能力,相較于1.0增加了環(huán)境貼圖/調(diào)節(jié)水面波浪/調(diào)節(jié)反射比率/調(diào)節(jié)倒影扭曲等能力, 效果上更加真實(shí)。
同時(shí),我們還提供了仿真水面,通常必須通過流體力學(xué)、專業(yè)計(jì)算軟件計(jì)算才能實(shí)現(xiàn)的效果,我們在webGL端就能實(shí)現(xiàn)實(shí)時(shí)計(jì)算和渲染,這是UINO優(yōu)锘的專利算法。
在地形渲染時(shí),經(jīng)常遇到業(yè)務(wù)數(shù)據(jù)需要和地形緊密貼合的情況,因此,ThingJS API 2.0增加了貼地形線 & 貼地面功能,以滿足用戶不同的業(yè)務(wù)應(yīng)用需求。
03ThingJS未來展望
未來,我們將利用ThingJS引擎升級版架構(gòu),快速支持最新的技術(shù)WebGPU,并且ThingJS開發(fā)者們不需要做任何的修改操作,就可以體驗(yàn)WebGPU帶來的新的能力提升。此外ThingJS API 2.0還將在接下來的1年內(nèi),持續(xù)補(bǔ)充以下功能:
- 支持物理系統(tǒng),提供更多仿真應(yīng)用所需要的能力
- 支持WebXR,讓大家可以輕松構(gòu)建自己的Web端VR、AR應(yīng)用
- 支持節(jié)點(diǎn)式材質(zhì)編輯器,方便大家自定義自己想要的材質(zhì)效果
- 在2022年底前,逐步將T3D渲染引擎和ThingJS API 2.0 開源,讓T3D和ThingJS加速發(fā)展,成為眾創(chuàng)引擎
- ……
ThingJS創(chuàng)立之初就希望面向開發(fā)者開放所有能力,與各行業(yè)專家一起構(gòu)建海量、垂直的數(shù)字孿生可視化應(yīng)用。從2018年ThingJS發(fā)版到現(xiàn)在,已經(jīng)有用了50萬 注冊用戶,我們也期待聽到大家的意見,不斷優(yōu)化升級ThingJS功能,和大家一起探索元宇宙。