ThingJS之二十六问
什么是ThingJS?
什么是ThingJS?thingjs有哪些功能?thingjs是干嘛的?怎么去利用thingjs进行三维可视化场景的搭建?如何才能快速了解thingjs?我们从以下26个问题来进行解答!
1.什么是ThingJS
ThingJS 名称源于 物联网 Internet of things(IoT) 中的 Thing (物),意为面向物联网可视化开发的 Javascript 库。主要针对以一栋或多栋建筑所组成的园区级别的场景,可以应用于数据中心、仓储、学校、医院、安防、预案等多种领域。
ThingJS 基于 HTML5 和 WebGL 技术,可方便地在主流浏览器上进行浏览和调试,支持 PC 和移动设备。ThingJS 为可视化应用提供了简单、丰富的功能,只需要具有基本的 Javascript 开发经验即可上手;
ThingJS 提供了对场景的加载、分层级的浏览,对象的访问、搜索、以及对象的多种控制方式和丰富的效果展示,可以通过绑定事件进行各种交互操作,还提供了摄像机视角控制、点线面效果、温湿度云图、界面数据展示、粒子效果等等各种可视化功能;
2. ThingJS平台的定位是什么?
答:ThingJS平台是优锘公司基于多年的三维开发经验,推出的一套面向IOT不同行业的开发者和企业提供三维PaaS开发平台,旨在帮助企业和行业解决方案供应商快速、低成本、低门槛地构建自己的三维应用。
3.ThingJS平台是不是开源的?
ThingJS平台不是开源的,平台提供了一套在线的三维开发环境。如需将开发成果转换成商业应用,我们将按照Licence授权的方式收取费用。
4.ThingJS开发方式是什么?
入手 ThingJS 时,推荐使用在线开发:
在线开发无需配置开发环境,直接利用在线编辑器即可入手,以最快速度开始;
在线编辑器支持自动拼写,右键菜单可以插入常用代码块,降低学习门槛;
在线保存,不用搭建服务器,一键发布,随时随地演示;
数据对接,支持ajax api的方式,也支持websocket的方式,前台页面直接获取数据,数据不经过thingjs平台,安全可靠;
从 ThingJS 网站顶部菜单中进入在线开发,你可以对任何例子代码进行修改,并运行查看结果;
目前仅支持在线开发,后期可能推出本地调试开发。
5.什么是模型?
ThingJS平台的模型是指一个能够操作的可复用的3D资源单元。
例如一栋楼是一个模型,一辆车是一个模型,一个传感器设备是一个模型。
6.什么是场景?
ThingJS平台的场景是指由众多模型放在一起组合而成一个空间。
例如一个围栏加一栋楼加围栏里的一辆小车组合便成为一个场景。
7.什么是应用?
ThingJS平台的应用是指带交互的场景。 应用使用JavaScript脚本语言开发。
例如一个粮仓应用,点击仓库可以显示信息牌,点击屋顶可以开盖。
8.什么是数据对接?
数据对接的目的是将真实物理世界的数据显示到虚拟的3D场景上。
ThingJS平台通过http协议JSON格式的方式获取数据,通过内部接口将数据显示到3D场景上。同时也包括改变3D场景中模型的属性。
例如移动一个车,打开一个柜门等。
9.什么是坐标系?
物体在空间中的标注值称为坐标。
某种标注方法称为坐标系,例如直角坐标系,球坐标系,圆柱坐标系。
ThingJS三维空间采用xyz右手直角坐标系。
10.什么是世界坐标/绝对坐标系?
以场景原点为中心的直角坐标系为世界坐标。
在ThingJS中所有的物体的position值均为世界坐标,排列为[x,y,z]。
11.什么是相对坐标?
在层次结构中的物体有相对坐标。
例如:某个建筑某楼层中的物体,该物体相对这个楼层。
ThingJS中属性localPosition为相对坐标,相对某层楼的中心点,室外物体无相对坐标。
12.什么是室内/室外物体?
在搭建工具中有室内和室外两种模式,凡在室内模式种放置的物体均为室内物体。
在室外模式放置的物体为室外物体。
13.项目中如何使用坐标系?
项目中一般采用替代法放置物体。
在搭建工具中放置方盒,然后通过程序替换为实际设备,这样就可以避开复杂的坐标系。
14. 你们是做整体可视化解决方案的吗?
答:我们是3D可视化平台软件提供商,利用我们的3D可视化平台ThingJS可以完成各行业应用。我们本身可提供这些行业的3D可视化系统的实际项目交付,但我们并不提供某行业的整体解决方案。我们是3D可视化系统产品提供商,并不是整体解决方案提供商,整体解决方案是由我们行业合作伙伴来完成的。我们在整体解决方案中提供可视化软件部分,不涉及硬件及可视化软件外其它子项。所以,我们也希望有更多的行业合作伙伴开始使用我们的3D可视化平台软件完成3D可视化监管系统交付。我们的ThingJS 3D可视化平台就是面向合作伙伴的低门槛、低成本3D可视化解决方案,适合非3D专业厂商来完成3D应用监管系统构建。
15. 你们做三维建模吗?
答:大概来说也算是的。但我们不是提供3D建模服务的公司,我们是提供3D建模、应用构建工具平台的公司。我们的3D建模、应用构建工具平台就是ThingJS平台,可上我们ThingJS网站看到。我们鼓励大家利用我们的工具平台来完成3D建模和应用开发。
16. 你们是如何建模的,过程复杂吗?
答:我们ThingJS平台最大的优势就是我们提供一个面向普通人的3D场景搭建工具,传统上3D建模需要专门的模型设计师通过3DMax等软件来完成,现在普通人就可以利用我们的ThingJS 3D场景搭建工具完成大部分3D场景搭建工作了。我们的3D场景搭建工具既然是面向普通人的,自然很简单,我们曾给小学生培训搭建工具使用,一节课下来基本上小朋友都会搭建了。
17. 这么多行业,有不少模型你们的库里是没有的,如何解决呢?
答:是的,万物可视,行业模型太多,我们模型库确实不可能有那么所有模型。所以我们提供了额外模型用户自行上传功能。现在可以在我们的场景搭建工具中上传您所需的额外obj模型文件。这些额外模型是需要3DMax等工具软件另行制作的,当然从网上下载等渠道来的也都可以使用。
18. ThingJS如何收费呢?
答:如果合作伙伴用我们的平台自行进行模型搭建、应用开发,目前我们ThingJS平台的3D场景搭建工具、在线应用调试环境、公开模型库等都是免费的。当然我们也不全是免费的,从我们ThingJS.com网站可看到价格页,商业开发者,在线部署服务以我们ThingJS官网价格页为准,除上面这些自行制作研发的方式,我们也可提供定制建模、开发服务。您在ThingJS官网登录账户,可以看到申请建模,申请开发,根据您的需要选择,提交相关信息后,我们会有专人联系您。
19. 可以离线部署吗?怎么收费?
答:可以的。虽然ThingJS主推PaaS平台,但也支持离线部署。目前公开市场授权价为:58888元。如果您需要的授权使用量大等,具体价格还可以进一步沟通。
20.ThingJS平台完整的开发流程是什么?
答:ThingJS平台开发3D可视化应用一般包括三个步骤:模型搭建、在线开发、应用部署。
1. 模型搭建:ThingJS平台自带三维场景搭建工具,能够满足不同场景下的三维搭建要求。CampusBuilder面向小型园区及该规模以下的场景搭建;CityBuilder面向城市级,提供更大场景的三维搭建组件;
2. 在线开发:场景搭建完成可导出ThingJS平台专有文件格式,上传到我们的在线开发平台进行应用开发。开发是用纯JavaScript脚本进行,普通网页开发人员都可完成,无需3D开发经验。通过JS脚本,可为3D场景增加UI界面、交互控制逻辑、对接数据、实时监控等功能,实现一个完整的3D可视化应用程序。
3. 应用部署:系统在线调试、测试无误后,就可以部署了。目前我们提供两种方式,在线部署在ThingJS云平台上或者下载离线部署包在您本地环境部署。
21. ThingJS的3D看着挺酷,对系统运行硬件有哪些要求?
答:ThingJS的3D可视化应用是B/S架构的,3D场景是运行在客户端的浏览器中。3D场景渲染展示对电脑设备要求较高,特别是显卡,一般必须是独立显卡。目前一般新的电脑都有独立显卡没有问题,老的办公用电脑可能在这方面不太具备条件。在不符合要求的电脑上查看3D场景会有卡顿感觉。ThingJS若是离线部署,需要部署到服务器端,ThingJS对服务器端的要求并不高。具体要求如下:
1. 客户端
系统:Windows 7及以上
CPU:双核 CPU2.8GHz及以上
内存:8G及以上
显卡:最低GTX650,推荐GTX960及以上,显存1G及以上
硬盘:300GB及以上
2. 服务器端
系统:Windows Server 2003及以上
CPU:双核 CPU2.8GHz及以上
内存:8G及以上
硬盘:500GB及以上
软件环境:JDK 1.6及以上
22. ThingJS平台3D场景挺好看,还有那些应用呢?
答:3D可视化的一个重要作用确实是“好看”,或者说降低认知门槛,使应用场景、应用数据的展示更加直观有效,大幅降低人们认知、监管特定行业应用状态变化的难度。当然,我们也可以总结诸如推演、仿真、预测、大数据展示等方面3D可视化不可替代的作用,但如果特定行业应用或用户对“好看”本身就是无感的,那也许3D可视化确实还不是他们当务之急。
23. ThingJS和BIM有什么不同?有什么关系?
答:我们和BIM有差异,也有关联:
a) 差异方面主要是定位差异:我们和BIM应用在主要应用定位上有所不同。BIM模型主要用于工程建设过程管理,我们的模型主要用于建筑完成后的日常运营管理;
b) 其次是模型差异:因为定位差异,所以BIM模型往往非常巨大,单体一栋楼的BIM模型1-2G是常见现象。这样的模型在日常管理的3D可视化应用中是不太可用的,因此往往需要轻量化。而BIM模型的轻量化过程,可能本身就要消耗大量时间精力。ThingJS有快速建模的能力,与之对比,往往用ThingJS模模搭工具根据CAD图纸搭建完成一个建筑比用相应BIM模型轻量化后应用成本更低;
c) 虽然有差异,但我们和BIM也有关联:实际上ThingJS并不拒绝BIM模型,ThingJS支持BIM模型轻量化后倒入ThingJS场景完成行业应用。不过现在BIM模型的使用需要按项目单独处理。
24. 如果某行业应用你们来做,大概多少钱?
答:虽然我们主推PaaS平台,鼓励合作伙伴完成行业应用开发,但如果确实需要,我们也可提供比如展板这些行业的3D可视化应用交付。交付会按传统软件项目开发来评估报价,具体的可针对特定项目沟通评估后报价。
25. ThingJS和地图坐标能整合吗?(室内坐标是地图坐标一致吗?)
答:可以(可以通过映射一致)。我们的3D场景会有自己的坐标原点,如果需要可以和某地理信息坐标进行对齐,到时只需要进行一定的坐标转换就可以使两者坐标对应。当然,在我们3D场景里是主推对象ID定位而不是坐标对外的,对于室内管理而言,前者更加有效和简便。
26. ThingJS和DataV/ECharts有什么区别?
答:ThingJS是从3D可视化(拟合现实世界)角度出发的,DataV/ECharts是从数据可视化的角度出发的,虽然两者在特定领域会有合集,但因为基础着眼点差异,使ThingJS在对比中有差异化优势。ThingJS的优势可列举以下方面:
a) 3D专业性和打酱油:因为ThingJS是从3D可视化角度出发的,因此ThingJS在3D引擎核心能力的维度、性能、封装丰富性方面都具有先天优势。为天下没有难开发的3D可视化应用是ThingJS的目标。而3D能力对DataV而言是后期加入的辅助性能力,和ThingJS以3D引擎为自己核心能力对比相去甚远;
b) 交互应用和图表:ThingJS考古到最早的核心能力开发方来自于3D游戏开发,这是一个非常强调3D交互的领域;而DataV/ECharts出身于做图表、做仪表盘,是从传统BI走过来的,出身的差异延续至今。因此ThingJS更强调打造3D场景,拟合各行各业运行环境,在交互操作情况下为各传统行业的可视化监管赋能,可形成各行业的3D可视化监管软件;而DataV/ECharts因为强调图表、仪表盘展示,更多见于大屏展示应用,DataV/ECharts即使形成行业管理软件,也是交互能力非常若的画面展示为主,与ThingJS的行业应用交互能力难以相比;
c) 展示风格差异:ThingJS作为专业的3D可视化平台,适合于各种3D展示风格,既可以以接近真实的模型风格展示,也可以以科幻风格、卡通风格等各种风格展示,能更方便地支撑各类应用场合的需要;而DataV/ECharts的3D是辅助性功能,一般只能提供科技感风格展示,对于复杂交互应用较难应付。
ThingJS有哪些工具?ThingJS有一个ChartBuilder子产品,和DataV/ECharts是一个对标的产品,也都是主打科技感大屏搭建的。而且,比如阿里的云栖大会上就有阿里的某合作伙伴使用我们的ChartBuilder产品而不是DataV搭建了展台展示大屏。同时ThingJS还有citybuilder和campusbuiler工具,前者用于三维城市地图建模,后者是用于园区搭建。