JMIR J医学网络杂志 医学互联网研究杂志 1438 - 8871 卡塔尔世界杯8强波胆分析 加拿大多伦多 v21i7e14160 31271154 10.2196/14160 原始论文 原始论文 用于医学教育的浏览器模拟器的开发:一种新的软件工具链的介绍 Eysenbach 冈瑟 舵柄 迈克尔 冯定 塞巴斯蒂安。 Šilar 1月 荷兰国际集团(Ing) 1 2 http://orcid.org/0000-0002-2469-5092 波兰语的 大卫 公元前 1 2 http://orcid.org/0000-0002-2599-2320 Mladek 阿诺št RNDr博士 1 2 http://orcid.org/0000-0003-0519-7351 我ž埃克 菲利普 荷兰国际集团(Ing) 1 http://orcid.org/0000-0003-0629-7389 库尔茨 西奥多·W 医学博士 3. http://orcid.org/0000-0003-0436-5456 迪卡洛 斯蒂芬·E 博士学位 4 http://orcid.org/0000-0002-5357-2120 Živny 1月 博士,博士,博士 1 http://orcid.org/0000-0002-1811-8977 Kofranek 雅罗西克 医生,医生,医生 1
病理生理学研究所 第一医学院 查尔斯大学 U Nemocnice 5 行星齿轮2 布拉格,128 - 53 捷克共和国 420 777686868 kofranek@gmail.com
2 http://orcid.org/0000-0002-1183-2748
病理生理学研究所 第一医学院 查尔斯大学 布拉格 捷克共和国 创造性联系s.r.o 布拉格 捷克共和国 检验医学系 加州大学 加州旧金山 美国 骨科医学院生理学系“, 密歇根州立大学 密歇根州东兰辛 美国 通讯作者:Jiri Kofranek kofranek@gmail.com 07 2019 03 07 2019 21 7 e14160 27 3. 2019 18 4 2019 1 6 2019 18 6 2019 ©Jan Šilar, David Polák, arnosti Mládek, Filip jeeek, Theodore W Kurtz, Stephen E DiCarlo, Jan Živný, Jiri Kofranek。最初发表在《医疗互联网研究杂志》(//www.mybigtv.com), 2019年7月3日。 2019

这是一篇开放获取的文章,根据创作共用署名许可协议(https://creativecommons.org/licenses/by/4.0/)发布,该协议允许在任何媒体上不受限制地使用、分发和复制,前提是要正确引用最初发表在《医学互联网研究杂志》上的原始作品。必须包括完整的书目信息,//www.mybigtv.com/上的原始出版物链接,以及版权和许可信息。

背景

在教学中使用的模拟器是交互式应用程序,包括被研究系统的数学模型和图形用户界面(GUI),允许用户以直观和教育的方式控制模型输入和可视化模型结果。设计良好的模拟器促进主动学习,提高解决问题的能力,并鼓励协作和小组讨论。然而,为教学目的创建模拟器是一个具有挑战性的过程,需要许多贡献者,包括教育家、建模师、平面设计师和程序员。建立模拟器的用户友好的软件工具链的可用性可以促进这一复杂的任务。

客观的

本文旨在描述一个名为Bodylight.js的开源软件工具链,该工具链促进基于浏览器的客户端模拟器的创建,用于教学目的,它是平台独立的,不需要任何安装,并且可以离线工作。工具链将最先进的建模工具与当前的Web技术连接起来,并被设计为能够适应软件生态系统中未来的变化。

方法

我们使用了几种开源Web技术,即WebAssembly和JavaScript,并结合Modelica建模语言的强大功能,将它们与使用Adobe Animate构建的交互式动画一起部署到互联网上。

结果

模型通过使用OpenModelica或Dassault Systèmes Dymola在Modelica语言中实现,并导出到标准化的功能模型单元(FMU)以确保未来的兼容性。来自FMU的C代码使用Emscripten进一步编译到WebAssembly。业界标准Adobe Animate用于创建交互式动画。开发了一个名为Bodylight.js Composer的新工具链,使人们能够通过使用拖放风格的动画、图形和控制元素组合GUI并将它们绑定到模型变量来创建最终的模拟器。生成的模拟器是独立的超文本标记语言文件,包括JavaScript和WebAssembly。我们使用Bodylight.js工具链创建了几个生理学教育模拟器,得到了老师和学生的一致好评,从而验证了我们的方法。本文介绍了肾元模拟器、循环模拟器和压力-体积回路模拟器。js是通用公共许可3.0授权的,任何人都可以免费使用。

结论

js使我们能够有效地开发教学模拟器。有了这项技术,我们打算专注于开发新的模拟器和交互式教科书的医学教育。js的使用不仅限于为医学教育开发模拟器,还可以促进开发用于教学各种不同领域的复杂主题的模拟器。

教育 生理学 计算机模拟 建模 Web浏览器 网络技术
简介 背景

教育工作者的任务是开发创新和创造性的教育材料,以补充和进一步加强传统的授课形式。这需要开发和传播材料,促进主动学习,提高解决问题的技能,并鼓励小组环境中的讨论和互动。计算机模拟是满足这些要求的一种方法。

一个模拟应用程序,通常称为模拟器,包括一个被模拟对象的数学模型(在这里是一个生理系统)和一个图形用户界面(GUI)。用户界面直观地表示模拟对象及其状态(由模型计算),并允许学生通过各种输入和控件控制模型。

模拟器在全球范围内被用于激励学生,增强他们对复杂话题的理解,培养批判性思维和解决问题的技能[ 1 2].我们一直在创建和使用各种技术设计的模拟器[ 3.多年来在我们的课堂上取得了相当的成功[ 4].

复杂的模拟器可能会让学生感到困惑,因此在没有额外解释的情况下是无效的。新的有效的教学工具包括将文本与模拟器(由模型驱动的交互式可视化)集成在一起的交互式教科书。学生可以使用模拟器对所学习的系统和概念进行实验,从而验证和加深他们的理解。模拟器的功能在附带的文本中解释,并补充了合适的场景,以使学生从经验中获得最大的效用。例如,由Burkhoff和Dickstein编写的关于心血管生理学的交互式教科书是该领域最早在互联网上可用的著作之一[ 5或作为iPad应用程序[ 6].

我们的目标是开发一种创建类似教材的技术,但与伯克霍夫[ 5,我们的创新设计是平台独立的,能够离线工作。这项技术是免费的,因此任何人都可以创建新的交互式教材。

创作由文字、图片或动画组成的书籍在技术上并不困难。有几种适合的软件工具可以用于此目的。具有挑战性的任务是包括模型驱动模拟器,允许学生改变变量,做出预测,并发现系统是如何工作的。

制作教学模拟器是一项要求很高和多方面的任务,需要多个领域的专家组成跨学科团队,包括教育、图形、建模和软件开发。

在开始这个过程时,教育者定义模拟器的教学目标,确定满足这些目标的主要设计,并提出模拟器应该能够演示的场景。教育工作者还通过确定应该建模的(生理)过程、用户控制的参数以及在GUI中显示的变量来定义对模型的需求。教育者还从概念上设计GUI,以便系统及其状态以教育的方式呈现。

建模师首先要在文献中找到一个合适的模型,并通常将几个模型结合起来。如果找不到方便的模型,建模师就从基本(如物理和生理)原理推导模型。此时,建模者用编程或建模语言实现模型,以便其计算可以在计算机上运行。如果模型是新开发的,则应通过将其结果与可信的参考数据进行比较来验证[ 7].

美术人员根据教育人员的任务设计GUI的视觉外观,并决定完整的安排,包括颜色和字体。艺术家还准备所有的图纸,包括可能链接到各自的模型变量的交互式动画,从而由模型控制。

软件开发人员使用图形组件组成GUI,将其与模型拼接在一起,并生成最终的模拟器。用户可控元素与模型的输入绑定。来自模型的输出变量与交互图形元素、图形和GUI的其他指标相连接。然后将最终的应用程序部署到目标平台上,该平台可以是一个Web页面或一个经典的本机二进制文件,最终将它嵌入到更广泛的教学单元中。

最后,教育者在教育环境中测试模拟器,并根据学生的反馈,可能决定迭代模拟器的新版本( 图1).开发人员的具体角色、开发阶段和在整个过程中有用的几种模式在CoSMos方法中有更详细的描述[ 8].

模拟器开发过程。

相关工作及方法

我们描述了我们为开发一个轻量级的、易于使用的、平台独立的、开放的和标准化的框架所做的软件工程努力,用于为医学教育创建基于交互式方程的模拟。在本节中,我们将讨论几个与模拟器创作相关的现有工具,以解释我们决定开发一个新的工具链并支持我们的技术决策的原因。

独立的可执行文件

LINDSAY虚拟人[ 9)是医学教育用的人体解剖学和生理学三维交互模型。主要集中在解剖学上。这个创新的项目允许 虚拟解剖而且 穿过身体可视化。LINDSAY虚拟人中的生理模型主要采用基于agent的方法实现[ 10].

林赛已在多个项目中使用[ 9].例如, anARtonomy应用程序允许在增强现实中显示和操作几个人体系统和器官的解剖模型。同样的, 合子三维解剖图谱和解剖实验室是一个人体解剖学交互式应用程序,可用于iPad, iPhone和iPod touch。它由4000多个解剖结构组成,允许对任何解剖系统进行虚拟解剖。最后, Prokaryo交互式模拟应用程序是 埃希氏杆菌属 杆菌Mac OS的细菌。它呈现细胞内结构,并使用基于代理的生理模型。

基于代理的建模方法[ 11是一种非常有用的方法,它适用于许多模拟多个自主个体(agent)交互的领域。在生物学中,这种方法被用于流行病学建模[ 12,细胞建模(如免疫系统[ 13或肿瘤生长[ 14]),或分子建模[ 15].我们主要关注器官或系统的生理模型,传统的基于数学关系的模型占主导地位。我们的模拟器所基于的模型通常作为数学方程系统发布,因此,基于方程的方法的使用是直接的。Parunak等比较了基于agent和基于方程的建模方法[ 16].

脉搏生理学引擎 17是一个全面的开源人体生理学模型。它是用c++实现的,包括一个求解器,它集成了许多生理系统[ 18].

教学模拟器可以基于类似的综合生理模型。包括虚拟病人模拟器在内的多个应用都需要这些模型[ 19],模拟某些疾病、复杂的病理状态或身体对无法用简单模型描述的药物的反应。

复杂模型的子系统通常在复杂的反馈循环中相互作用,这可能很难理解。因此,解释一个特定系统或身体器官的模拟器,如果基于只关注该系统的较小模型,则更容易理解[ 20.,也就是说,因为单一系统或器官是 断开连接而不受反馈回路的影响。这种断开子系统连接的方法被称为 其他条件不变(其他条件相同)。一旦学生掌握了一个孤立子系统的行为,就可以使用更复杂和集成的模型和模拟器来模拟子系统如何相互作用。

模拟机生产中的一个重要和开创性的工具是国家仪器公司的 虚拟仪器.LabVIEW是为工程控制和优化而设计的,具有轻松连接外部硬件的能力。虽然它最初不是为此目的而开发的,但它可以产生一个完整的模拟器。它允许开发人员使用面向块的方法实现模型[ 21并生成用户界面。

LabVIEW为多个操作系统生成可安装的可执行文件。长期用于生理教学模拟器的制作[ 22],并目前用于该目的[ 23 24],例如,由AP. Shepherd和LabVIEW创建的模拟器可在生命科学教学资源社区网页上免费获得[ 25].LabVIEW还用于控制基于硬件的生理人体模型模拟器[ 26].

在LabVIEW中使用的面向块的建模方法中,模型由功能块(添加、乘法、集成和其他更具体的块)组成。这些块通过它们的输入和输出连接起来。模型输入值通过块网络传播并修改,计算输出值[ 27].实现是可视化的。

面向块建模方法的缺点是,建模师必须在模型实现之前知道哪些变量是输入的,哪些是输出的。建模师还必须推导出模型评估的因果关系,即变量将依次评估的顺序[ 27].

我们发现基于方程的建模方法比面向块的方法更方便。这样做的原因是,使用基于方程的建模方法,实现模型组件时不需要任何关于因果关系的假设。由建模工具自动解析因果关系[ 27当模型被翻译时。因此,模型组件可以在不同的上下文中重用。这使得该方法对于复杂的模型更加方便。我们非常喜欢提供基于方程建模优势的工具。这些考虑因素在 Modelica下面一节将详细介绍。

根据教程,GUI通常使用LabVIEW中预定义的组件组成[ 28和LabVIEW模拟器[ 25].这些组件被指定为技术领域;因此,生成的模拟器通常具有工业外观。

控件可将新的交互动画作为图像序列包含在内 戒指图片Jerome最近描述的功能[ 29].序列中图像的索引可以绑定到一个模型变量。这种方法很方便地用一个变量来控制动画。

有一些新的图片功能可供使用[ 30.这可以促进LabVIEW最新版本中复杂的动画制作。LabVIEW NXG Web模块[ 31 32允许程序员使用一种技术上类似于我们自己的方法将LabVIEW用户界面导出到Web浏览器。这两个功能使得LabVIEW对于教学模拟器的制作可能更加有用,但是我们还没有发现任何使用这些新功能的生理模拟器。

除了上面讨论的面向块的建模问题之外,LabVIEW还是一个商业产品。这将它的使用限制在那些强烈决心从事建模和模拟器开发的个人,因为它需要在软件许可方面的投资。根据我们的经验,使用商业产品可能会产生不利的影响,使我们偶尔的合作者不愿意参与模拟器的开发。

雷斯曼和伯克霍夫合著的心血管教材的iPad版[ 6是另一个独立模拟器的例子。

一般来说,分发一个独立的可执行文件可能会带来安装问题并阻碍其使用。可执行程序是平台相关的,必须为每个平台分别生成或编译。

基于浏览器的客户机-服务器

客户-服务器模拟器的例子包括JustPhysiology [ 33]以及伯克霍夫等人编写的心血管教材系列的网页版[ 5].Meyer等人讨论了如何实现基于web的客户机-服务器模拟器的几种技术方法,其中特别强调Modelica建模。[ 34].

一个名为Modelica University的Modelica互动内容平台由Tiller和Winkler开发[ 35].使用此平台创建的模拟器包含在 Modelica实例蒂勒基于网络的书籍[ 36].模拟器GUI是用JavaScript手工合成的。

Žáková和切赫[ 37]实现了一个运行Modelica模型并实现JSON-RPC (JavaScript对象表示法远程过程调用)协议的Web服务[ 38,用于与客户端应用程序通信。这个应用程序允许个人远程上传、翻译和模拟模型。没有用于客户端应用程序生产的特殊工具。使用此服务器后端的客户机应用程序可以使用任何合适的技术创建。使用该技术创建了几个教学模拟器[ 37,主要是为了学习控制工程课程。我们没有找到该项目的网站,也没有任何实现的模拟器;因此,我们假设该项目仅供作者使用。

使用基于浏览器的客户机-服务器方法的模拟器已经是平台独立的,不需要任何安装。不幸的是,在教室或讲座中使用,许多学生可能同时使用模拟器,增加了对服务器的计算和带宽需求。这可能是一个主要的缺点。

延迟可能是这种方法的另一个缺点。在快节奏游戏中,超过50毫秒的延迟会降低用户体验。 39].虽然很明显,教学模拟器对延迟的敏感度不如实时游戏,但低延迟有助于优化用户体验。例如,当与UI交互产生即时效果时,用户可以连续移动滑块控制模型参数,快速观察系统的渐进响应。

总延迟是由模型评估、图形呈现和(在客户机-服务器体系结构的情况下)网络通信延迟引起的。互联网连接必须快,服务器必须足够近,以达到较低的网络延迟[ 40].

为了解决客户端-服务器架构中连接不稳定会导致动画停顿的问题,我们将使用缓存策略,如Brukhoff [ 5],这将使我们能够制作流畅运行的动画。

这种方法的另一个缺点是,这些模拟器需要不断地连接到服务器后端,因此,这种方法不适合需要脱机工作的交互式教科书。

我们认为客户端方法更合适,因为租用云服务提供足够的计算能力,可以同时为众多终端用户提供服务,并且拥有分布在全球各地的数据中心,以实现合理的往返时间,这对许多个人和小团队来说可能会变得昂贵。

另一方面,当客户端设备没有足够的性能在合理的时间内评估模型时,客户机-服务器方法很方便,服务器可能更快地交付结果。

基于浏览器的客户端

为了克服独立和客户机-服务器解决方案的缺点,模拟器可以直接在客户机(即浏览器)上运行。客户端模拟器是平台独立的。其他的优点包括它们不需要任何安装,不会给服务器带来沉重的负载,并且可以在较慢的互联网连接下运行或完全脱机。这种方法的一个主要困难是需要将任何现有平台重做为JavaScript代码库。瓦格纳已经完成了一些开创性的工作[ 41].

具体来说,我们开发了Bodylight(.Net)模拟器框架[ 42),构建在微软Silverlight浏览器插件上。在这个项目中,OpenModelica编译器得到了扩展,以便它可以将模型转换进来 c#语言。OpenModelica运行时和求解器被手动重写到 f#语言。这种方法的一个问题是OpenModelica正在快速发展,重写的运行时必须不断更新,以与系统的其他部分保持兼容。Silverlight插件最终被终止,框架也变得过时和无用。

openmodelica-javascript汤姆·肖特的项目[ 43扩展了OpenModelica,这样它就可以将模型和模拟运行时自动编译为JavaScript Emscripten(我们也使用emscripten)。可以轻松创建基于浏览器的模拟器,其中包括用于输入参数值的文本框和用于可视化结果的图形。由于模拟运行时代码是自动生成的,因此与基于Silverlight的过时Bodylight(. net)解决方案相比,保持系统与OpenModelica兼容要轻松得多。缺点是该项目仅依赖于OpenModelica,不支持其他建模工具。此外,不支持更复杂的GUI元素,包括滑块和交互式动画(尽管可能可以手动实现它们)。另一个问题是,它没有提供任何工具来轻松地组合GUI,例如,以拖放方式。由于OpenModelica中的更改,OpenModelica -javascript项目目前不能与最新版本的OpenModelica一起工作(与Tom Short的个人通信)。

相关的软件框架和库

除了方法一节中描述的技术和软件库之外,还有其他一些技术可能对使用有益。在这里,我们将讨论其中的一些。

BabylonJS 44是一个免费的JavaScript 3D引擎,用于在Web浏览器中使用WebGL进行游戏和其他3D可视化。它在医学电子学习(电子学习)方面有多种应用。例如,educaanatomy 3d是一款严肃的人体解剖教育游戏[ 45].3D模型可以在Blender中创建[ 46](一个免费的3D建模工具),并导出在BabylonJS中使用[ 47].BabylonJS和Blender的结合可以方便地扩展我们的工具链,我们的目标是基于免费工具。

Tree.js 48]是另一个用于在基于WebGL的Web浏览器中进行3D可视化的JavaScript引擎,应用于医疗电子学习[ 49].例如,如果我们决定包含对3D图形的支持,以实现更精确的解剖可视化,我们可以使用这两个引擎中的一个。

另一个重要的游戏引擎和开发平台是 团结 50,由Unity Technologies公司开发。它允许创新者创造2D和3D互动体验。Unity有几个版本,其中一个版本是免费的。Unity的另一个重要方面是它有自己的开发编辑器。主要的编程语言是c#。Unity允许创新者为许多不同的平台构建应用程序。其中一个目标平台是WebAssembly [ 51,它允许生成的模拟器在浏览器中运行。它被用于开发严肃的电子学习游戏[ 52- 56在许多领域,包括医学教育[ 57].我们之前在。net框架中结合使用过Unity 生存败血症-一个三维综合教育模拟器概念验证计划(适用于Windows Store平台)[ 58].Unity对于开发复杂的严肃游戏非常方便。如果我们决定专注于严肃的游戏开发,我们会考虑使用Unity,尽管它是一个商业产品。

新工具链的目标

有许多基于JavaScript的优秀Web技术,包括许多有用的框架和库,它们几乎可以平衡浏览器和本机应用程序的功能。也有很好的建模工具可用。问题是模型是用本地编程语言(C或c++)部署的,因此它们不能在浏览器中运行。我们的目标是填补这一空白,并允许使用专用的建模工具,并允许在没有服务器端后端的情况下在浏览器中运行结果模型。根据我们之前的经验,我们对模拟器生产的工具制定了如下要求:

基于浏览器:为了实现广泛的兼容性,并避免安装过程的必要性,这可能会使许多用户灰心丧气。

客户端:这样许多用户就可以同时运行模拟器,而不必从第三方供应商租用昂贵的计算硬件。

未来的证据:工具链应该基于标准,这些标准不太可能在合理的时间框架内过时。

用户友好:使所有参与模拟器生产的人都能使用适当的工具完成他们的任务,使工作高效、令人愉快,最终的模拟器是令人满意的。

基于方程:以促进模型开发,它们的实现是基于方程的语言,最好是Modelica(优点在 方法Section)应该被允许。

开源而且 免费提供:我们构建工具链的目标是使用相关的开源项目,收获开发人员辛勤工作的成果,同时也做出贡献,使工具箱在copyleft许可下可供任何人使用。开源许可还应该允许项目在未来发展,培养开发人员和用户之间的合作。建模工具必须是免费的,这一点尤为重要。我们经常与来自不同工作场所的同事协作进行模型开发,并且使用一个免费可用的工具,任何人都可以参与。

在模拟器的生产过程中,有许多工具是有用的,它们满足一些要求。然而,我们无法找到一个满足我们所有需求的工具或工具链。为了解决这个限制,我们开发了一个满足我们所有特定需求的工具链。

方法

我们在指定的需求范围内创建了一个新的工具链,使用以下技术。

Modelica

Modelica [ 59- 61是一种基于方程、面向对象、开放的标准语言,用于模拟复杂的物理系统。

在基于方程的(因果)方法中,模型由描述变量之间关系的方程组成(例如, x 2 + y 2 = 1),而不是将一个输出变量(在左边)赋值给一个求值表达式(在右边;例如, y: =√6 (1 - x) 2 ) [ 62].在建模阶段不必知道评估的因果关系(评估方程的顺序以及从哪个方程计算哪个变量)。它由后来的解决方案工具自动导出[ 62].与面向块的建模相比,我们更喜欢这种方法,因为在面向方程的建模中,建模人员节省了推导因果关系的劳动。此外,由于模型组件是在没有任何因果关系假设的情况下实现的,因此它们可以很容易地扩展或稍后在因果关系不同的各种模型中重用[ 62].这在创建可重用组件库时非常有用。我们的模拟器基于通常作为方程系统发布的模型,因此,它们在基于方程的方法中的实现是直接的。

下面,我们用方程中描述的谐振子模型举例说明两种方法之间的区别 M∙x " = - k∙x - c∙x',在那里 x的位置,代表质量, k表示弹簧常数,和 c表示阻尼常数。在Modelica中使用面向块的方法实现该模型(因为Modelica也支持面向块的建模) 图2.在Modelica中使用基于方程的方法实现相同模型的代码列于 图3.几份报告比较了基于方程(因果关系)和面向块的方法[ 27 62 63].

由于 面向对象的Modelica对于大型复杂模型的缩放效果非常好[ 62].基本模型组件(类)由方程定义。组件有连接器。更复杂的组件由其他组件组成,这些组件使用它们的连接器以可视化的方式连接。这些连接被呈现为附加的方程,绑定连接组件的变量。还支持继承,并支持重要的代码重用。存在许多来自不同领域的预定义组件的Modelica库。我们的实验室开发了一个名为physilibrary的Modelica生理学库[ 64 65].用Modelica标准库实现了谐振子模型 图4.模型的外观直观地解释了被建模系统。

Modelica得到许多不同的建模工具的支持,主要是因为它是一个 开放的标准.这很重要,因为它允许使用多种工具来扩展和扩展建模功能。我们使用OpenModelica [ 66),或达索Systèmes Dymola [ 67],这是一个更先进的,但却是一个专有的建模工具。

Modelica是一种开源工具支持的开放标准语言,因此非常适合模型共享[ 68].

在Modelica中使用面向块的方法实现谐振子模型。

在Modelica中使用基于方程的方法实现谐振子模型。

利用Modelica标准库实现谐振子模型。

功能模型接口

功能模拟接口(FMI) [ 69是一个用于在不同独立工具和应用程序之间交换和联合仿真动态模型的标准。Dymola和OpenModelica都允许将模型导出为功能模型单元(FMU)。在模式下导出时 用于联合仿真的FMI,单元包含一个模拟运行时,它负责模型的计算和执行。与外界的数据交换被限制在离散的通信点上,在它们之间,单元由包含的求解器独立求解[ 70].

FMU可以导出与编译实现联合仿真标准的二进制文件所需的源代码。这种能力对于我们的目的非常有利,因为我们可以将源代码编译成Web语言,并可以完全访问浏览器中的协同仿真功能的FMI,这允许我们轻松地与模型交互。

FMI标准确保了与OpenModelica和Dymola未来版本的兼容性。此外,Bodylight.js系统可以很容易地调整,以支持实现FMI导出选项的其他模拟工具。

JavaScript

JavaScript是一种多平台、面向对象、解释性编程语言[ 71].它最初是由Brendan Eich在1995年开发的。JavaScript是ECMAScript标准最著名的实现。最近所有重要的Web浏览器都支持它[ 72].今天,它被广泛用于实现网站上的交互和动态行为。

JavaScript库

我们使用 GrapesJS开源Web Builder框架[ 73]作为我们的超文本标记语言(HTML)布局引擎。GrapesJS允许我们使用拖放方法来设计模拟器的显示方式。有一组内置的块可用于构建应用程序,它还允许轻松定制和生产额外的块。可用的配置面板使程序员能够编辑画布上组件的属性和行为。GrapesJS的模块化设计允许我们与它的用户界面挂钩,并将其扩展为主要用户体验的基础。

EaselJS 74是CreateJS工具包的一个组件。它允许轻松操作HTML5 Canvas元素,并可用于创造游戏,美术和其他图像体验。更重要的是,出于我们的兴趣,Adobe Animate本地支持将动画导出到EaselJS。我们可以使用Adobe Animate来设计动画或EaselJS直接创建原始动画。

最后, Plotly.js 75是一个用JavaScript实现的高级声明式图表库。它可以用来显示多种类型的图表。

WebAssembly

WebAssembly [ 76]定义了在基于堆栈的虚拟机中执行的二进制指令格式。它的主要用途是在Web浏览器内部实现,旨在以接近本机的速度提供代码执行。二进制格式的设计在大小和加载时间方面非常高效,减少了传输和加载代码所需的时间。

WebAssembly是高级编程语言(如C或c++)的编译目标,支持将现有的和用C/ c++编写的新代码编译到浏览器平台。实现这一点的编译器是开源项目Emscripten [ 77 78],我们用它来编译FMU内部的源代码。编译后的代码可以被视为混淆到与其他二进制指令格式表示类似的级别。这些算法可以被分解成伪代码,并且通过大量的努力和时间投资,甚至可以进行逆向工程[ 79].对于大多数实际目的来说,在编译到WebAssembly时,可以认为模型是模糊的。

结果 概述

新的Bodylight.js工具链使用了一些第三方开源工具、编译器和其他新编写的工具。网页[ 80,包括文档和教程。在本节中,我们将更详细地描述完整的工作流,并定义所有涉及的过程和使用的工具。我们特别关注新开发的 Bodylight.js作曲家,通过使用拖放样式的动画、图形和控制元素组合GUI,并将它们绑定到模型变量,可以创建最终的模拟器。

模型处理

模型工作流程在 图5.模型是用Modelica编写的,通常在一个流行的Modelica ide中编写,例如开源的OpenModelica或专有的、完善的Dymola。

下一步是将模型导出到FMU中。Dymola支持在FMU中导出源代码 源代码生成许可证( 81,而且OpenModelica似乎总是导出FMU内部的源代码。不幸的是,OpenModelica在发布之日只允许导出欧拉求解器,这对于许多模型来说是不够的。

然后需要将FMU编译成WebAssembly和JavaScript。为了完成这一步,我们准备了一个Docker容器,它使用Emscripten自动将FMUs编译为Composer兼容的文件[ 82].

容器接受由Dymola使用 源代码生成license和在Linux平台上从OpenModelica生成的FMUs。对Linux的需求是因为来自OpenModelica的FMUs是用makefile生成的,makefile不仅依赖于平台,而且还依赖于机器。为了更方便地为工作流中的OpenModelica部分设置环境,我们准备了另一个Docker容器,它使用OpenModelica自动导出FMUs [ 83].

模型工作流- modelica模型从OpenModelica或Dymola导出到功能模型单元(FMU),使用emscripten编译成WebAssembly和JavaScript。

动画处理

我们使用Adobe Animate [ 84在设计互动动画的过程中。Adobe Animate支持使用EaselJS库将本地导出到HTML5和JavaScript。这个过程相当轻松,因为导出的JavaScript代码的所有后处理都由编写器处理。此外,用户可以选择直接编写所有EaselJS,而不需要使用Adobe产品。

Bodylight.js作曲家

Bodylight.js作曲家是这个项目的主要开发重点。Composer是一个单页应用程序,可以轻松地将模型、动画和控制元素组合在一起。

Composer的核心是建立在React上的,这是一个成熟的、非常流行的JavaScript库。HTML布局引擎是由GrapesJS提供的,应用程序的其余部分都是围绕这个引擎形成的。Composer允许用户轻松地设计交互式HTML模拟器。还有几个可用的输入和输出小部件。的 范围小部件处理模型变量的控制。的 图表Widget使用plotly.js在交互式图表中显示模型的输出。切换窗口小部件和按钮可以控制布尔值,标签用于显示值。

作曲家配备了 行动它们是用户生成的JavaScript代码片段,可以附加到其他小部件的事件上。例如,其中一个预填充的操作是 重置模型用模型作为参数。用户可附加 行动到一个 onclick事件的 按钮小部件并选择要重置的适当模型。的 动画小部件用于导入在adobeanimate中创建的复杂动画。这些可以包含连续播放的动画,其速度和方向可以由任何模型变量控制。此外,它还可以控制位置动画,其中时间轴位置直接由模型变量控制。

用户还可以保存和打开可共享的项目文件。从Composer导出的最后一个文件是一个独立的HTML文件,其中包含JavaScript和WebAssembly代码。编写器工作流描述在 图6还有作曲家本身 图7

我们建议读者在Bodylight.js网页上查看视频教程[ 80以便更好地理解Bodylight.js Composer的工作原理。简单的 弹力球主页上的视频演示了如何构建一个由简单的交互式动画、一个情节、一个滑块和一个重置按钮组成的模拟器。它也包含在 多媒体附件1.还有两个额外的视频教程可在 文档部分。的 简单的项目教程( 85演示了如何构建一个由滑块、图和重置按钮组成的模拟器。它被逻辑地分成不同的章节。教程视频后面也解释了这些步骤。第二个教程更加详细 生理上的应用教程( 86].本教程演示了用于构建压力-容积心循环的真实模拟应用程序的几个高级功能 图8.解释的其他功能包括创建参数化图,添加启动-停止按钮,通过事件控制模型参数,以及在模型变量上应用用户函数。例如,讨论了如何四舍五入值或显示字符串消息和其他特性。翻译后的模型和Composer项目文件都包含在这两个教程中。

创建Composer工作流方案- html (Hypertext Markup Language,超文本标记语言)布局,加载动画,加载模型,绑定模型和动画变量,添加控制元素和图形,并与模型变量绑定。

Bodylight.js Composer中的肾小球应用程序页面。

压力-体积回路模拟器是更高级的教程的结果。

原始的模拟器

使用Bodylight.js创建了几个模拟器。在本节中,将展示一个模拟器来演示Bodylight.js的功能。首先介绍了一些基本的生理学,然后介绍了模拟器,并着重介绍了Bodylight.js的特点。

肾元模拟器

肾脏的主要作用是产生尿液并控制其成分。肾脏的功能单位是肾元。一对肾脏中大约有200万个肾元。肾元由肾小球和小管系统组成。肾小球是由毛细血管组成的网状组织。血液通过毛细血管壁过滤;因此,产生初级尿(滤液)(约180升/天)。滤液随后流经相应的小管系统,每个小管的功能略有不同,在小管中水和特定的溶质被重新吸收,从而产生和排出适量的尿液,其成分符合维持体内平衡的要求。

这些过程由模拟器直观地解释。为了简单起见,刺激剂只关注水和钠。模拟器可在网上下载[ 87],并作为 多媒体附件2 多媒体附件2还包括离线使用所需的附加库。对模拟器的详细描述,包括它的教学目标、模型和实现,超出了本文的范围。更多信息可在我们最近的工作中获得[ 88].

肾小球屏幕

图9描绘肾小球屏幕。小动脉的阻力,平均动脉压和过滤系数由滑块控制。这些参数的变化会影响系统中的压力和流量。压力由液柱计表示,通过小管的流量由螺旋桨和半圆指示器的速度表示(正常值用刻度标记)。通过血管壁的流量显示为虚线移动箭头的宽度。静液压力和肿瘤压力也由肾小球下方的圆柱体表示。所有指标都是相互作用的,并对模型变量值的变化作出反应。

注意,公式中的流量指标数值和压力值也受模型控制。还有一个 重置模拟将所有参数设置为默认值的按钮。

模型中没有时间演化,所有的事情都在初始化阶段计算。模拟器在所谓的 一次机会政权。这意味着每次滑块改变参数时,模型会自动重新计算,GUI也会相应更新。这同样适用于下一个屏幕。

肾小球。压力由液柱指示器显示,流量由螺旋桨和半圆指示器显示。红色箭头代表血液流向,黄色箭头代表尿液流向。肾小球滤过率。

完整肾元筛检

完整肾元的模拟器见 图10.用滑块控制肾小球滤过率和抗利尿激素(ADH)参数。滤液流速和钠质量流速用半圆指示器显示。滤液的渗透压(与溶质摩尔浓度成正比)由管内的数值和亮度梯度决定。水和钠通过管壁的流量由蓝色和橙色虚线移动箭头的宽度决定。抗利尿激素的量和相应的小管水渗透性是由小管最后一段蓝色水通道的宽度变化来显示的。

完整的肾单位。半圆计表示尿流率,小管内的亮度梯度表示渗透压,蓝色和橙色虚线移动箭头表示水和钠通过小管壁的流动,蓝色通道表示小管水的渗透率。流量和渗透压绘制在图表中(各个部分用不同的颜色表示)。ADH:抗利尿激素;肾小球滤过率。

血流和渗透压是沿肾肾小管的距离的函数,并在图表上标出。各个部分(其变量使用模型中的数组进行离散化)用不同的颜色突出显示,以便于识别。图例、标签、线颜色、宽度以及其他一些情节属性也进行了调整。

血液循环

血液循环模拟器( 图11)、网上可得[ 89],是说明Bodylight.js Composer使用的另一个例子。该模拟器描述了2个一般的血管回路:(1)将血液分配到身体的大系统回路和(2)穿过肺部的小肺回路。电路是通过心脏连接的。该模拟器基于基本物理模型,默认参数值与临床值相吻合,以提供有意义的结果。学生可以修改各种模型参数:(1)全身和肺静脉的顺应性(与弹性倒数),(2)反映心脏收缩力和心排血量的斯塔林曲线的斜率,(3)总血容量和非弹性血容量(非应激,V0),(4)肺和全身阻力。该模拟器补充了动画数字;因此,系统在外界扰动下的响应可以用图形(直观)的方式进行跟踪,也可以通过后台运行的模型计算出的数值进行跟踪。请注意,人脸动画也受动脉压控制,面部表情和颜色的变化代表低、正常或高压。

血液循环模拟器。压力由液柱计显示,血量由黑色边界的血管截面的宽度表示,血流速率由闪烁箭头的频率表示。动脉压力的变化也反映在面部表情和颜色的生动变化上。

压力-容积回路模拟器

心血管模拟器( 图8),可在网页[ 90,显示左心室的压力-容积循环。它基于我们的Modelica实现[ 91Burkhoff和Tyberg的模型[ 92].模型控制的图像显示心房和心室充盈,以及心脏周期中瓣膜的打开和关闭。学生可以暂停模拟并跟踪心脏周期阶段的名称,心房和心室压力和容积,肺动脉和主动脉压力,以及压力-容积环路上的当前点。网页上的多媒体教程[ 80描述如何从原始Modelica模型创建此模拟器。模拟器的开发主要是为了实现本教程的目的。如果它的目的是教育,就需要更多的情节和滑块。

讨论 主要结果

我们创建了Bodylight.js工具链,以促进基于Modelica模型的交互式模拟器的开发。在本报告中,我们将重点描述工具链的一个重要新组件(Bodylight.js Composer),它支持创建基于浏览器的模拟器。有关工具链及其使用的更多信息,可浏览网页[ 80].

解决了工具链的目标。重要的是,Bodylight.js Composer和它产生的模拟器都是 基于浏览器而且 客户端.系统在浏览器中运行,不需要任何服务器端后端。也可以分发独立于平台的HTML文件,并在没有互联网连接的情况下在浏览器中运行。这是通过使用诸如JavaScript、WebAssembly和HTML等Web技术实现的。我们相信会是这样的 不会过时的(不太可能过时),因为它主要基于被每个主要软件供应商接受和实现的开放标准技术。如果工具链中的任何一个应用程序中断了,那么用另一个工具替换它们应该是很容易的。我们也发现它是 用户友好的.模型在 equation-based Modelica语言,使用建模师选择的建模环境,例如OpenModelica或Dymola。动画是在专业的行业标准工具Adobe Animate中创建的。Composer使用拖放技术来可视化地组合模拟器,它是在通用公共许可3.0下发布的 开源许可证和是 免费提供.因此,任何人都可以在他们的开源项目中使用和实现它。据我们所知,目前还没有其他工具能满足我们的所有要求。

这种方法集合了建模、Web技术和图形设计领域,支持教师、建模师、软件开发人员和图形设计人员之间更好的跨学科合作。

js Composer是一个自包含的客户端应用程序,提交的任何内容都不会离开用户的设备;因此,没有特别的安全或隐私问题。

在Bodylight.js中创建了几个模拟器,它被证明是满足设计者需求的一个方便的解决方案。如果没有这个万能的工具链,实现这些应用程序将非常耗时。本文介绍了新的肾元模拟器、血液循环模拟器和压力-容积循环模拟器,以演示Bodylight.js的功能。肾元模拟器近年来被应用于医学生的病理生理学教学中,得到了学生和老师的一致好评。

与以往工作的比较

与目前可用的客户端-服务器解决方案相比,客户端方法有几个优点。首先,模拟器不受服务器计算限制的限制。通过避免任何服务器端计算的必要性,可以绕过伸缩问题。相反,我们只是提供一个Web页面,它可以托管在任何Web服务器上。其次,客户端解决方案不需要到服务器的低延迟连接。因此,客户端方法避免了对昂贵的Web主机服务的需求。

在线学习和远程学习在全世界变得越来越重要,在发展中国家尤其重要,因为那里的许多潜在学生不容易接触到教师[ 93].此外,由于许多人可能无法获得可靠的互联网连接[ 94,往返延迟通常很高[ 95在发展中国家,客户端解决方案可能更适合这里。

限制

向FMU导出用于联合仿真的OpenModelica目前仅限于欧拉解算器,没有选项可以包含OpenModelica编译器中可用的任何其他解算器。欧拉是可用的最简单的求解器,与OpenModelica中包含的更高级的求解器相比,它的数值性能通常较差。因此,从OpenModelica导出目前对于许多模型是不可用的。我们经常被迫从专有的Dymola导出FMU,这至少会持续到OpenModelica FMU导出问题得到解决为止。

Adobe Animate是一个用于创建动画的商业工具。使用EaselJS库描述动画的JavaScript代码也可以手工编写。

在模拟器中计算复杂的模型或多个情节或动画的情况下,性能下降变得明显。较慢的帧速率或模型更新速率并不会使模拟器无用,但会降低用户体验。

js依赖于相对较新的Web技术;因此,只有2017年底之后的浏览器才能运行我们的模拟器。然而,因为运行旧的浏览器存在安全风险,大多数浏览器供应商已经切换到自动更新系统。

未来

我们将扩展OpenModelica,以便它可以在FMU中使用高级求解器进行联合仿真。我们计划优化模型计算和图形渲染,以实现更高的帧率。编写器在设计上是模块化的;因此,我们计划添加对新库的支持,如不同的图表库甚至其他动画库,并欢迎外部代码贡献。

结论

新的工具链促进了教学模拟器的生产,不仅在生理学,而且在其他领域,系统的行为可以用数学方程描述,包括生物学、物理学、化学、工程和经济学。此外,这项技术并不局限于教育或学术界。任何有能力为他们的系统建模的人,无论它可能是什么,都可以使用Bodylight.js以可视化的方式向任何感兴趣的方解释它。

将文本与图像、动画、多媒体和交互式模型驱动模拟器相结合的新一代电子教科书正在出现。这些教科书允许对所教授的特定系统进行模拟实验,这有助于对感兴趣的主题有更深的理解。

我们建议将教材开发为独立于平台的浏览器内应用程序,不需要安装,也可以在没有互联网连接的情况下运行。js满足了所有这些要求,并且是免费的,任何人都可以使用,这只会帮助增加它的影响力。我们希望这个项目能帮助人们更好地理解各种各样的系统。

js Composer弹跳球教程视频。

肾元模拟器。

缩写 抗利尿激素

抗利尿激素

电子学习

电子学习

FMI

功能模型接口

FMU

功能模型单元

GUI

图形用户界面

超文本标记语言

超文本标记语言

这项工作得到了TRIO MPO FV20628、FV30195、PROGRESS Q26拨款和Creative Connections公司的支持

Creative Connections旨在基于Bodylight.js平台开展咨询业务,提供动画、模型或完整的模拟器。

费舍尔 Sbissa Y 铁男 P Adjedj J 皮卡德 F 小巧玲珑的 一个 通过 O 利用模拟器教学提高医学生的知识和能力:随机对照试验 J医学网络杂志 2018 12 24 20. 9 e261 10.2196 / jmir.9634 30249587 v20i9e261 PMC6231746 Pennaforte T 穆萨 一个 单继刚 N Charlin B Audetat MC 探索一种改进临床推理教学与评估的模拟新方法:随机试验方案 JMIR Res Protoc 2016 02 17 5 1 e26 10.2196 / resprot.4938 26888076 v5i1e26 PMC4776024 Kofranek J Matejak Privitzer P KOFRLAB:生物控制论与计算机辅助学习实验室 2010 2019-04-05 MEFANET报告03:Web模拟器创建技术 http://www.physiome.cz/references/mefanetreport3.pdf Kofranek J Matousek 年代 Rusz J Stodulka P Privitzer P Matejak Tribula 生理学和病理生理学图谱:基于网络的多媒体交互式模拟 计算方法程序生物医学 2011 11 104 2 143 53 10.1016 / j.cmpb.2010.12.007 21232813 s0169 - 2607 (10) 00299 - 3 Burkhoff D 迪克斯坦 毫升 Harvi 2019-03-20 http://harvi.online/ Leisman 年代 Burkhoff D 使用iPad应用程序模拟压力-容积循环和心血管生理学 Adv .物理教育 2017 09 1 41 3. 415 24 10.1152 / advan.00204.2016 28679580 41/3/415 库尔茨 太瓦 迪卡洛 SE Pravenec 我ž埃克 F Šilar J Kofranek J 莫里斯小 钢筋混凝土 测试计算机模型,预测人类对高盐饮食的反应 高血压 2018 12 72 6 1407 16 10.1161 / HYPERTENSIONAHA.118.11552 30571226 PMC6309797 安德鲁斯 PS 波兰人 足总 桑普森 备用轮胎 年代 Timmis J 约克大学 2010 2019-04-06 CoSMoS过程,0.1版:复杂系统建模和模拟的过程 http://www-users.cs.york.ac.uk/~susan/bib/ss/nonstd/tr453.pdf 雅各 C Hallgrimsson B Coderre 年代 Jamniczky H LINDSAY虚拟人 2019-04-27 http://www.lindsayvirtualhuman.com 雅各 C 冯定 年代 戴维森 T Sarraf-Shirazi 一个 Sarpe V Esmaeili 一个 菲利普斯 D Yazdanbod Novakowski 年代 斯泰尔 年代 Gingras C Jamniczky Hallgrimsson B 莱特 B LINDSAY虚拟人:多尺度的,基于代理的,交互式的 Adv Intell模型Simul 2012 422 327 49 10.1007 / 978-3-642-30154-4-14 奥巴马 U 兰德 W 基于代理的建模介绍:用NetLogo建模自然、社会和工程复杂系统 2015 剑桥,马萨诸塞州,美国 麻省理工学院出版社 马歇尔 双相障碍 最低潮 年代 形式化基于主体的建模在因果推理和流行病学中的作用 流行病学 2015 01 15 181 2 92 9 10.1093 / aje / kwu274 25480821 kwu274 PMC4351348 Fachada N 洛佩斯 V 罗莎 一个 基于agent的免疫系统建模与仿真研究综述 第十三届葡萄牙人工智能会议论文集 2007 EPIA 07年 2007年12月3日至7日 葡萄牙吉马良斯 l Athale CA Deisboeck TS 三维多尺度agent-based肿瘤模型的开发:模拟脑癌中基因-蛋白质相互作用谱、细胞表型和多细胞模式 J理论生物学 2007 01 7 244 1 96 107 10.1016 / j.jtbi.2006.06.034 16949103 s0022 - 5193 (06) 00278 - 5 阿兹米 Bulat E Weis K Mofrad 先生 基于agent的核孔复合体mRNA输出模型 Mol Biol细胞 2014 11 5 25 22 3643 53 10.1091 / mbc.e14 - 06 - 1065 25253717 mbc。E14-06-1065 PMC4230623 范戴克 PH值 Savit R Riolo RL 基于代理的建模vs基于方程的建模:一个案例研究和用户指南 第一届多智能体系统和基于智能体的模拟国际研讨会论文集 1998 马伯98 1998年7月4日至6日 法国巴黎 10 25 10.1007 / 10692956 _2 脉搏:生理引擎 2019-04-27 http://physiology.kitware.com 布雷 一个 韦伯 简森-巴顿 Enquobahrie 一个 Vicory J Heneghan J Hubal R TerMaath 年代 巨人 P Clipp RB 脉搏生理学引擎:人体医学模拟计算建模的开源软件平台 SN Compr clinin Med 2019 03 27 1 5 362 77 10.1007 / s42399 - 019 - 00053 - w Kofranek J Kulhanek T Matejak 我ž埃克 F Šilar J 莫德丽卡综合生理学 第十二届国际Modelica会议论文集 2017 Modelica的17 2017年5月15-17日 布拉格,捷克共和国 15 17 10.3384 / ecp17132589 Kofranek J Vu LD Snaselova H 克雷克斯 R 维兰 T 医学教育多媒体模拟器GOLEM 种马健康技术通知 2001 84 Pt - 2 1042 6 10.3233 / 978-1-60750-928-8-1042 11604890 Lipovszki G Aradi P 在LabVIEW中模拟复杂的系统和过程 数学科学J 2006 02 132 5 629 36 10.1007 / s10958 - 006 - 0007 - z 基尔 JW 牧羊人 美联社 一种用于生理学模拟的图形计算机语言 计算生命科学教育 1988 5 7 49 56 SL NR CC 用LabVIEW对呼吸控制进行建模和仿真 医学与生物工程杂志 2012 32 1 51 60 10.5405 / jmbe.829 科尔 RT 卢卡斯 CL 卡西欧 我们 约翰逊 助教 一个包含开环动脉阻抗和闭环循环系统的LabVIEW模型 安生物工程学院 2005 11 33 11 1555 73 10.1007 / s10439 - 005 - 7785 - 1 16341923 生命科学教学资源社区 2019-03-20 https://www.lifescitrc.org Samosky JT 纳尔逊 B R Hosmer 一个 Mikulis B 韦弗 R BodyExplorerAR:增强人体模型医疗模拟器与传感和投影增强现实探索动态解剖学和生理学 第六届有形、嵌入和具身交互国际会议论文集 2012 TEI”12 2012年2月19日至22日 加拿大安大略省金斯顿 263 70 10.1145/2148131.2148187 Kofranek J Matejak Privitzer P Tribula 生物控制论与计算机辅助学习实验室“, 2008 因果或因果模型:人类的劳动或机器的劳动 http://www.physiome.cz/references/tcp2008.pdf 国家仪器 2018 2019-04-22 教程:用户界面 http://www.ni.com/tutorial/7568/en/ 杰罗姆 J 使用LabVIEW的虚拟仪器 2010 印度新德里 菲尔学习有限公司 国家仪器 2018 2019-05-04 使用2D图片控件 http://zone.ni.com/reference/en-XX/help/371361R-01/lvconcepts/using_the_picture_indicator 国家仪器 2019-05-04 什么是LabVIEW NXG Web模块? http://www.ni.com/cs-cz/shop/electronic-test-instrumentation/add-ons-for-electronic-test-and-instrumentation/what-is-labview-nxg-web-module.html WebVIs:开发基于web的用户界面 2019-05-11 http://www.webvi.io 只是生理 2019-03-20 http://justphysiology.com 梅耶祖艾森 年代 斯坦 B 基于web的仿真服务的实现 第一版印第安纳州 2006 04 57 3. 261 71 10.1016 / j.compind.2005.12.007 舵柄 毫米 温克勒 D modelica。大学:Modelica互动内容平台 第十二届国际Modelica会议论文集 2017 Modelica的17 2017年5月15-17日 布拉格,捷克共和国 10.3384 / ecp17132725 舵柄 毫米 Modelica大学 2019 2019-04-05 Modelica实例 http://mbe.modelica.university Žakova K 切赫 基于OpenModelica的Web服务控制教育交互实例设计 第13届APCA自动控制与软计算国际会议论文集 2018 IEEE的18 2018年6月4-6日 Ponta Delgada,葡萄牙 242 6 10.1109 / CONTROLO.2018.8514288 JSON-RPC工作组 json - rpc 2004 2019-04-29 JSON-RPC 2.0规范 http://www.jsonrpc.org/specification Raaen K Grønli的 TM 游戏可用性的延迟阈值调查 挪威信息学会议论文集 2014 尼克的14 2014年11月17日至19日 挪威卑尔根 麦克马纳斯 摩根大通 一天 TG Mailloux ZJ 数字WPI:伍斯特理工学院 2019 2019-05-06 延迟、带宽和丢包对云游戏服务的影响 https://digitalcommons.wpi.edu/cgi/viewcontent.cgi?article=6326&context=iqp-all 瓦格纳 G 基于web的教育模拟 冬季模拟会议论文集 2017 IEEE的17 2017年12月3日至6日 拉斯维加斯,内华达州,美国 4240 51 10.1109 / wsc.2017.8248130 Silar J Kofranek J 生理模型的创建与共享 Eur J Biomed Inform 2011 7 1 55 8 10.24105 / ejbi.2011.07.1.10 T GitHub公司 2019 2019-04-28 OpenModelica-Javascript http://github.com/tshort/openmodelica-javascript BabylonJS 2019-05-05 http://www.babylonjs.com 巴蒂斯塔 AV Lemos RR 鲁道夫 厘米 布埃诺 废话 Fiuza PJ 康西卡奥 基米-雷克南 佩雷拉 PF 曼苏尔 党卫军 人体解剖教育的Web3D严肃游戏设计 教育环境中沉浸式数字游戏研究手册 2017 美国宾夕法尼亚州 IGI全球 286 611 搅拌机 2019-05-05 http://www.blender.org BabylonJS文档 2019-05-05 http://doc.babylonjs.com/resources/blender ThreeJS 2019-05-05 http://threejs.org Kasinathan V 幕斯塔法 一个 努尔 足总 AA 脑解剖生理学三维电子学习应用 整型工程 2018 11 1 10 6 144 8 10.30880 / ijie.2018.10.06.020 团结 2019-05-04 https://unity.com/ Trivellato 团结 2018 2019-05-04 Unity博客:WebAssembly在这里! https://blogs.unity3d.com/2018/08/15/webassembly-is-here/ Horachek D 使用Unity创建电子学习游戏 2014 伯明翰,英国 Packt出版 说唱剧 毫米 进行 FJ 马丁内斯 奥尔特加 DG 罗德里格斯 利用增强现实技术支持儿童学习动物的手机严肃游戏 程序计算科学 2013 25 375 81 10.1016 / j.procs.2013.11.046 科埃略 一个 加藤 E 泽维尔 J Goncalves R 严肃游戏入门编程 第二届严肃游戏开发与应用国际会议论文集 2011 SGDA的11 2011年9月19日至20日 葡萄牙里斯本 61 71 10.1007 / 978 - 3 - 642 - 23834 - 5 _6 乔治 正义与发展党 McLain 毫升 Bijlani K Jayakrishnan R Bhavani RR 起重机操作员训练的一种新方法:起重机模拟器上的严肃游戏 第八届教育技术国际会议论文集 2016 IEEE的16 2016年12月2-4日 印度孟买 116 9 10.1109 / T4E.2016.030 Boada Rodriguez-Benitez 一个 Garcia-Gonzalez JM 橄榄山 J 卡雷拉斯 V Sbert 用一个严肃的游戏来补充护士学院的CPR教学 计算方法程序生物医学 2015 11 122 2 282 91 10.1016 / j.cmpb.2015.08.006 26319184 s0169 - 2607 (15) 00216 - 3 Gaudina Zappi V Bellanti E 维切里 G eLaparo4D:向虚拟视频腹腔镜手术的物理训练空间迈进了一步 第七届复杂、智能和软件密集型系统国际会议论文集 2013 IEEE的13 2013年7月3-5日 台中,台湾 611 6 10.1109 / CISIS.2013.110 Jezek F Tribula Kulhanek T Matejak Privitzer P Silar J Kofranek J Lhotska l 生存败血症-一个三维综合教育模拟器互联网 第37届IEEE医学与生物工程学会国际年会论文集 2015 IEEE的15 2015年8月25日至29日 米兰,意大利 10.1109 / embc.2015.7319191 马特 SE 姆奎斯特 H 水獭 使用Modelica进行物理系统建模 控制工程实践 1998 04 6 4 501 10 10.1016 / s0967 - 0661 (98) 00047 - 1 舵柄 Modelica Internet物理建模简介 2012 瑞士 施普林格科学与商业媒体 Fritzson P Modelica 3.3面向对象建模和仿真的原理:一种信息物理方法 2015 新泽西州霍博肯 约翰·威利父子公司 齐默 D 基于Modelica的方程建模-原理和未来的挑战 Simul Notes Eur 2016 06 26 2 67 74 10.11128 / sne.26.on.10332 Fritzson P Engelson V Modelica -一种统一的面向对象的系统建模和仿真语言 第十二届面向对象程序设计欧洲会议论文集 1998 ECOOP 98 1998年7月20日至24日 比利时布鲁塞尔 67 90 10.1007 / bfb0054087 Matejak Kulhanek T Šilar J Privitzer P 我ž埃克 F Kofranek J 生理图书馆- Modelica生理学图书馆 第十届国际Modelica会议论文集 2014 Modelica的14 2014年3月10-12日 瑞典隆德 499 505 10.3384 / ecp14096499 Matejak Physiolibrary 2019-03-20 http://www.physiolibrary.org OpenModelica 2019-03-20 http://www.openmodelica.org 达索系统公司股价 2019-03-20 DYMOLA系统工程 https://www.3ds.com/products-services/catia/products/dymola Kofranek J 我ž埃克 F Matejak Modelica语言——发布和共享生物医学模型的有前途的工具 第一届美国Modelica会议论文集 2018 Modelica的18 2018年10月9-10日 马萨诸塞州剑桥市 196 205 10.3384 / ECP18154196 Blochwitz T 水獭 基米 J 阿诺德 老人 C 姆奎斯特 H 弗里德里希 Junghanns 一个 比如 J Neumerkel D 奥尔森 H 祝您 一个 功能模型接口2.0:工具独立交换仿真模型的标准 第九届国际Modelica会议论文集 2012 Modelica”12 2012年9月3-5日 德国慕尼黑 173 84 10.3384 / ecp12076173 Modelica 2014 2019-04-27 模型交换和联合仿真的功能模型接口 https://svn.modelica.org/fmi/branches/public/specifications/v2.0/FMI_for_ModelExchange_and_CoSimulation_v2.0.pdf 弗拉纳根 D JavaScript:权威指南 2006 加州塞瓦斯托波尔‎ O ' reilly媒体 W3Schools 2019-05-06 JavaScript版本 https://www.w3schools.com/js/js_versions.asp Arseniev 一个 GrapesJS 2019-03-20 https://grapesjs.com/ 斯金纳 G CreateJS 2019-03-20 https://createjs.com/easeljs 绘图库 2019-03-20 https://plot.ly/javascript Zakai 一个 WebAssembly 2019-03-20 https://webassembly.org/ Zakai 一个 Emscripten 2019-03-20 https://emscripten.org/ Zakai 一个 Emscripten: LLVM-to-JavaScript编译器 ACM面向对象编程系统语言与应用国际会议论文集 2011 OOPSLA的11 2011年10月22日至27日 波特兰,俄勒冈州,美国 301 12 10.1145/2048147.2048224 Falliere N PNF软件虽然 2018 2019-03-20 逆向工程WebAssembly https://www.pnfsoftware.com/reversing-wasm.pdf 波兰语的 D Šilar J 我ž埃克 F Mladek 一个 Kofranek J Bodylight.js https://bodylight.physiome.cz/ 达索系统公司股价 2019-03-20 代码和模型导出 https://www.3ds.com/products-services/catia/products/dymola/code-and-model-export/ 波兰语的 D GitHub 2019-03-20 Bodylight.js-FMU-Compiler https://github.com/creative-connections/Bodylight.js-FMU-Compiler 波兰语的 D GitHub 2019-03-20 Bodylight.js-OM-Compiler https://github.com/creative-connections/Bodylight.js-OM-Compiler Adobe 2019-05-04 【动画新时代】 https://www.adobe.com/cz/products/animate.html 波兰语的 D Šilar J BodylightJS 2019-04-27 创建一个简单的项目 https://bodylight.physiome.cz/docs/simple_project/1_creating_a_simple_project 波兰语的 D Šilar J Kofranek J BodylightJS 2019-04-26 压容心脏模拟器 https://bodylight.physiome.cz/docs/pvloops/1_pressure_volume_cardiac_simulator Šilar J Mladek 一个 大卫 一个 Živny J Kofranek J 肾元模拟器 http://physiome.cz/apps/Nephron/ Šilar J 我ž埃克 F Mladek 一个 波兰语的 D Kofranek J 用于e-Learning的模型可视化,用于医科学生的肾脏模拟器 第十三届国际Modelica会议论文集 2019 Modelica的19 2019年3月4日至6日 雷根斯堡,德国 10.3384 / ecp19157393 大卫 P 生物控制论与计算机学习支持实验室“, 简单循环模拟器 http://physiome.cz/apps/SimpleCirculation/ Kofranek J 大卫 P 生物控制论与计算机学习支持实验室“, 心脏压力-容积循环模拟器 https://physiome.cz/apps/pvloops/ 我ž埃克 F Kulhanek T Kalecky K Kofranek J 各种复杂心血管系统的集总模型 Biocybern Biomed Eng 2017 37 4 666 78 10.1016 / j.bbe.2017.08.001 Burkhoff D Tyberg 合资企业 左室功能障碍发生后肺静脉压升高的原因:理论分析 Am J physics 1993 11 265 5 Pt 2 H1819 28 10.1152 / ajpheart.1993.265.5.H1819 8238596 赛扶 作为 Lwoga 桑格牛 C 教与学的新技术:发展中国家高等教育机构的挑战 国际教育发展 2007 3. 2 57 67 Geissbuhler 一个 Bagayoko 有限公司 Ly O RAFT网络:在讲法语的非洲通过互联网进行5年远程继续医学教育和远程咨询 国际医学资讯 2007 76 5 - 6 351 6 10.1016 / j.ijmedinf.2007.01.012 17331799 s1386 - 5056 (07) 00006 - 8 Chavula J Feamster N Bagula 一个 Suleman H Nungu 一个 Pherson B Sansa-Otim J 量化迂回路线对非洲内部互联网流量延迟的影响:研究和教育网络的研究 为发展中国家提供电子基础设施和电子服务 2015 柏林 斯普林格出版社 64 73
Baidu
map