Using the Three.js library to develop remote physical laboratory to investigate diffraction Pavlo I. Chopyk1 , Vasyl P. Oleksiuk1,2 and Oleksandr P. Chukhrai1 1 Ternopil Volodymyr Hnatiuk National Pedagogical University, 2 M. Kryvonosa Str., Ternopil, Ukraine 2 Institute for Digitalisation of Education of the NAES of Ukraine, 9 M. Berlynskoho Str., Kyiv, 04060, Ukraine Abstract The article examines the process of designing and developing a virtual (remote) physics laboratory. The authors have identified the requirements of the laboratory for studying the diffraction effect (visibility, accessibility, flexibility and visualization). The ability to set additional working parameters such as measurement error, material types and performance conditions. No additional software is required to carry out laboratory work, only an Internet connection and a browser.). The research analyzes the available digital tools for developing 3D models and ultimately selects the 3D library Theree.js. The researchers then proceed to create a suitable model for representing laboratory objects and processing experimental data. The virtual laboratory enables students to measure the line widths of the diffraction pattern when using monochromatic light (red, blue, green). It also enables the solution of the inverse problem, allowing determination and verification of the wavelength. Additionally, students may calculate measurement errors through the virtual laboratory. Keywords remote physical experiments, JavaScript, Three.js, remote lab 1. Introduction Experiments and laboratory work are an essential part of modern physics education in secondary schools, colleges and universities. They facilitate learners’ understanding of physical principles. Laboratory assignments aid students in gaining a better understanding of theoretical concepts by enabling them to observe the operation of physics principles in the natural world. Additionally, practical laboratory sessions allow teachers to assess students‘ knowledge and understanding. Lab exercises also facilitate student acquisition of skills in data manipulation, processing, and analysis. These skills are valuable not only for the study of physics but also for a wide range of other fields in science and technology. Laboratory experiments promote critical thinking and problem-solving and have the potential to stimulate an interest in science. Furthermore, practical skills are refined through lab work, such as operating scientific apparatus and practical abilities with potential applications in the real world [1]. CS&SE@SW 2023: 6th Workshop for Young Scientists in Computer Science & Software Engineering, February 2, 2024, Kryvyi Rih, Ukraine " chip.ukraine@gmail.com (P. I. Chopyk); oleksyuk@fizmat.tnpu.edu.ua (V. P. Oleksiuk); olexandrtera@gmail.com (O. P. Chukhrai) ~ https://tnpu.edu.ua/faculty/fizmat/chopik.php (P. I. Chopyk); https://tnpu.edu.ua/faculty/fizmat/oleksyuk-vasil-petrovich.php (V. P. Oleksiuk)  0000-0001-6631-078X (P. I. Chopyk); 0000-0003-2206-8447 (V. P. Oleksiuk); 0009-0002-7075-3617 (O. P. Chukhrai) © 2024 Copyright for this paper by its authors. Use permitted under Creative Commons License Attribution 4.0 International (CC BY 4.0). CEUR Workshop Proceedings ceur-ws.org ISSN 1613-0073 CEUR Workshop Proceedings (CEUR-WS.org) 246 CEUR ceur-ws.org Workshop ISSN 1613-0073 Proceedings Currently, remote training is a common practice. Therefore, relevant software has been developed by many vendors and educators [2]. Although virtual laboratory work cannot always substitute traditional laboratory work. It has proven to be essential in certain circumstances [3, 4, 5]. The versatility offered by virtual labs allows students to work from any location, at any time [6]. Moreover, it eliminates the potential risks associated with handling dangerous or costly equipment, which could pose a threat to the safety and well-being of students. This facilitates the verification of results and the utilisation of modern technology. It is feasible to replicate experiments and substantiate findings within virtual laboratories. Researchers can experiment with concepts that are impractical or unfeasible within a conventional laboratory setting, such as exploring nuclear fission or the Big Bang theory. The absence of practical experience and restricted engagement of students are drawbacks of virtual laboratories. Some concepts may have limited comprehension due to a lack of interaction with physical equipment. Furthermore, students may not adequately develop skills working with equipment. Therefore, it is advisable to incorporate a combined approach, combining both practical and virtual modelling. Virtual models aid students’ readiness for laboratory experiments by facilitating comprehension and application of the material. 2. The model of a physical remote laboratory To set up a remote physics laboratory, an educator can make use of readily available software or create their own. There are some free virtual laboratories such as [7, 8, 9, 10, 11, 12] • PhET Interactive Simulations from the University of Colorado; • Physics at School – HTML5-virtual environment ; • Labster platform; • CK-12 Interactive Physics for High School; • Gizmos from Explore Learning. All of them were created using HTML5, JavaScript, or Java technologies. Significant disad- vantages that prevent the use of existing laboratories are the lack of monitoring of students’ laboratory work, the inability to conduct measurements without displaying the finished results (in fact, simulations of physical processes are performed), and the perfection of the results, which does not allow for the assessment of measurement errors. We decided to develop our service for running virtual physics labs. This study aims to systematise the design and development process of creating a remote physics laboratory for diffraction investigation. Based on the analysis of studies by Holly et al. [13], Manabe et al. [14], Shepiliev et al. [15], Kiv et al. [16], Kanivets et al. [17] we have identified the following requirements for the service • Visibility. The physical process should be fully visualised with the possibility of interactive control. • Accessibility. No additional software is required to carry out laboratory work, only an Internet connection and a browser. • Flexibility. The ability to set additional working parameters such as measurement error, material types and performance conditions. 247 • Visualisation. The appearance of virtual equipment should be similar to that of real laboratory equipment. 2.1. The frameworks, engines and libraries to developing physical remote laboratory To establish remote laboratories, it is essential to carefully choose adequate development tools, which can include frameworks, engines, and 3D libraries. When considering the comparison of 3D graphics libraries, it is crucial to establish unambiguous standards to evaluate their aptitude and efficacy. The following are essential criteria to consider when evaluating 3D graphics libraries: 1. Performance and rendering quality. This criteria assesses the frame rate and rendering speed of intricate scenes, and the quality of graphics rendered, comprising lighting, shadows, and textures. 2. Ease of use and learning curve. The criteria are an assessment of the accessibility of tutorials, documentation, community support and ease of use of the library. It also includes the intuitiveness of the API and overall developer-friendliness. 3. Flexibility and customization. The assessment of this criterion involves determining the levels of ability to customize the rendering pipeline, effects and support for various 3D models, file formats, and asset management. 4. Extensibility and modularity for integrating with other technologies. 5. Feature set and capabilities are evaluated through the availability of essential 3D features and support for physics simulation, collisions, and particle systems. It also includes VR/AR support, if needed for the project. 6. Community and ecosystem. This criteria assesses the size, activity of the developer community, availability of third-party plugins, extensions, or add-ons, and frequency of updates and ongoing development. 7. Cross-platform compatibility provides for the definition the levels of support for various web browsers or platforms (desktop, mobile, VR devices), and the performance consistency across different devices and browsers. 8. Integration and interoperability. The criteria are an assessment of the compatibility with other popular frameworks, libraries, or technologies and ease of integration with existing workflows, tools, IDEs. 9. Real-time collaboration and deployment are evaluated through support for real-time collab- oration among team members and smooth deployment and hosting options for web-based 3D applications. 10. Project size and loading speed. The criterion defines the impact of the library on the overall project size. It also includes booting time and efficiency in loading assets and scenes. 11. License and open-source nature is important in terms of material costs for project develop- ment. It involves assessing licensing terms (open-source, commercial, etc.), associated costs, and availability of a free or trial version for evaluation. 12. Use cases and education adoption This criteria assesses the relevance of the library to physics education tasks and examples of successful projects or applications built using 248 the library. The criterion is interdisciplinary. To assess it, there is a demand for training STEM education specialists who are competent in physics and able to develop and deploy virtual and augmented reality software [18]. There are some well-known libraries and frameworks that can be used to create 3D graphics and animations. These include Three.js, Babylon.js, A-Frame and Cannon.js. Based on the literature reviews by [19, 14, 20] and discussions with practising developers we have conducted a comparative analysis of these 3D graphics libraries. A 5-point scale was used to evaluate the criteria (5 points – maximum compliance of the framework with the criterion, 1 point – minimum compliance of the framework with the criterion). The results of analysis are given in table 1. Table 1 Compare the capabilities of some libraries and frameworks that can be used to create 3D graphics and animation. Framework Criteria Three.js Babylon.js A-Frame Cannon.js performance and rendering quality 4 5 3 2 ease of use and learning curve 4 4 5 4 flexibility and customization 5 4 3 2 feature set and capabilities 5 5 3 2 community and ecosystem 5 5 4 3 cross-platform compatibility 5 4 4 4 integration and interoperability 4 3 3 4 real-time collaboration and deployment 4 4 3 1 project size and loading speed 4 3 4 4 license and open-source nature 5 5 5 5 use cases and education adoption 4 3 5 3 So, we chose the Three.js library to develop a virtual physical laboratory to investigate the diffraction effect. The process of designing our virtual laboratory to investigate diffraction predicted took place during such stages. 1. Formulation of the physical problem. 2. Selecting development tools and obtaining the required libraries. 3. The creation and design of a laboratory model. 4. Implementation and testing. The diffraction grating’s constant, 𝑑, the distance from the grating to the screen, 𝐿, and the diffraction order, 𝑚, are provided. Students are to measure the distance from the centre to the maximum 𝑙. From these two distances, they have to determine the angle 𝛽. Since the 𝛽 angle is small, 𝑡𝑔(𝛽) ≈ 𝑠𝑖𝑛(𝛽) ≈ 𝛽 (figure 1.) We assume that a plane light wave is normally incident on the grating. There are several steps in the process of conducting an experiment, whether in reality or virtually. 249 Figure 1: The physics problem of diffraction. 1. The diffraction spectrum on the screen should be captured accurately. Finally, the spec- trum should be analysed. 2. Position the diffraction grating at a specific distance, 𝐿, from the screen. 3. Calculate the distance 𝑙, which represents the distance between the center of the line in the given order’s spectrum and the zero spectrum, as illustrated in figure 1. 4. Employ formula (1) to calculate the wavelength 𝜆. 𝑑·𝑙 𝜆= (1) 𝑛·𝐿 where 𝑑 is the distance between the adjacent slits (grating period), 𝑛 is the diffraction order (an integer). 5. Alter the distance between the screen and the grating repeat step 3. 2.2. Discussing the design and development of a remote laboratory As mentioned above, we chose the Three.js library. Additionally, we employed Bootstrap, an open-source CSS framework designed for front-end web development. Therefore we have obtained the necessary libraries, such as three.js-master and bootstrap-dist and uploaded them to the web-server folder. The virtual laboratory model is shown in figure 2. To actually be able to display diffraction with three.js, we need to create scene, camera and renderer. All objects in our virtual lab are placed in a
container on the canvas. The left menu contains the parameters of the laboratory objects such as switching on the lamp, activating light filters, moving the dynamic screen, changing the camera position, diffraction grating step, moving the pointer position (see figure 3). There are a few different cameras in three.js. We used a PerspectiveCamera. It is designed to mimic the way the human eye sees [21]. Based on this mode, 3 camera instances have been created. They allow the student to see the phenomenon in three modes 1. General view. It shows a view of the equipment for studying diffraction in three-dimensional space. 250 Figure 2: The model of virtual laboratory to investigate diffraction 2. Observation mode. It shows the diffraction pattern. This mode allows you to set the pointer. 3. Distance measurement mode. It provides rulers for measuring distance 𝑙 from the formula 1. The code 1 was used for the creation of a camera. Listing 1: Camera creation example camera =new THREE . P e r s p e c t i v e C a m e r a ( 4 5 , w e b g l _ w i d t h / w e b g l _ h e i g h t , 1 , 10000); camera . p o s i t i o n . s e t ( c a m e r a P o s 1 . px , c a m e r a P o s 1 . py , c a m e r a P o s 1 . pz ) ; camera . r o t a t i o n . s e t ( c a m e r a P o s 1 . rx , c a m e r a P o s 1 . ry , c a m e r a P o s 1 . r z ) ; camera . name = " Camera1 " ; s c e n e . add ( camera ) ; To create the lighting, we used 3D objects such as PointLight and AmbientLight. The first one is emitted from a single point in all directions. The second globally illuminates all objects in the scene equally [21]. PointLight is used for the lamp, and AmbientLight is the background lighting for the entire scene. Then an instance of the WebGLRenderer class was created with parameters such as 251 Figure 3: The menu of virtual laboratory to investigate diffraction. • alpha controls the default opacity value. Its value was set to zero; • antialias is used to reset the internal WebGL state; • domElement is a canvas where the renderer draws its output; • setSize sets dimension of the scene; The figure 3 displays the menu for the virtual laboratory designed for investigating diffraction. In order to enable camera movement around a grating, an instance of the OrbitControls class was instantiated. The properties of this instance determine the maximum and minimum distance of the dynamic screen and the angle‘s limit of vertical rotation (see code 2). Listing 2: An instance of the OrbitControls class creation example c o n t r o l s = new O r b i t C o n t r o l s ( camera , r e n d e r e r . domElement ) ; c o n t r o l s . minDistance = 2 ; c o n t r o l s . maxDistance = 2 5 ; c o n t r o l s . m a x P o l a r A n g l e = Math . P I / 2 ; controls . target . set (0 , 4 , 0); The scene objects were created by using geometric shapes and importing 3D models. BoxGeom- etry was used to create the main objects in the scene. These include the table, ruler, dynamic screen, stand and diffraction grating. It is a geometry class for a rectangular box with a given width, height and depth. The view of these objects from camera 1 is shown in figure 4. 252 Figure 4: The view of the virtual laboratory from camera #1. The materials from which these objects are made were created using the Mesh class. It represents triangular polygon mesh-based objects [21]. The instances of the MeshStandardMa- terial class and its extensions MeshPhysicalMaterial and MeshPhongMaterial were used for creating some materials such as metal (black and silver), glass, plastic and table. For example, a diffraction grating in three dimensions was created using the code in listing 3. Listing 3: The code for creating diffraction grating v a r G r a t i n g G l a s s B o x = new THREE . Mesh ( new THREE . P l a n e G e o m e t r y ( 0 . 7 , 0.6) , materialGlass ) ; G r a t i n g G l a s s B o x . name = ’ G r a t i n g G l a s s B o x ’ ; v a r G r a t i n g L f t B o x = new THREE . Mesh ( g e o m e t r y G r a t i n g L f t R g h t B o x , materialGratingPlastic ); v a r G r a t i n g R g h t B o x = new THREE . Mesh ( g e o m e t r y G r a t i n g L f t R g h t B o x , materialGratingPlastic ); v a r Gra t in gU p Bo x = new THREE . Mesh ( geometryGratingUpDwnBox , materialGratingPlastic ); v a r GratingDwnBox = new THREE . Mesh ( geometryGratingUpDwnBox , materialGratingPlastic ); Other laboratory items were produced similarly, including a colour filter, mobile pointer, and dynamic screen ruler. They allow students to change the diffraction effect and measure the 253 distance between the centre of the spectral line of a given order and the spectral line at zero order. To utilize the dynamic screen ruler, employ camera view #3 figure 5. Figure 5: The view of the virtual laboratory from camera #3. We used three groups to create complex objects such as a lamp and a tripod. They combined graphic primitives and imported images. The code for forming the lamp can be found in the listing 4. Listing 4: The code for forming the lamp { LampBase . p o s i t i o n . s e t ( 0 , 0 , 0 ) ; LampVerticalCylinder1 . position . set (0 , 1.8 , 0 ) ; LampHorizontalCylinder1 . position . set (0 , 3. 58 , 0 ) ; LampHorizontalCylinder1 . r o t a t i o n . x = 1 . 6 ; LampHorizontalCylinder1 . r o t a t i o n . x = 1 . 6 ; LampHorizontalColorCylinder . position . set (0 , 3.572 , 0 . 2 7 5 ) ; LampHorizontalColorCylinder . rotation . x = 1 . 6 ; GroupLamp . add ( LampBase ) ; GroupLamp . add ( L a m p V e r t i c a l C y l i n d e r 1 ) ; GroupLamp . add ( L a m p H o r i z o n t a l C y l i n d e r 1 ) ; GroupLamp . add ( L a m p H o r i z o n t a l C o l o r C y l i n d e r ) ; GroupLamp . p o s i t i o n . s e t ( 0 , 1 . 1 5 , − 7 ) ; } 254 The colour filter was created as a Mesh object with the values THREE.BoxGeometry and THREE.MeshStandardMaterial (see listing 5). Listing 5: The code for forming blue filter v a r F i l t e r G l a s s = new THREE . Mesh ( new THREE . BoxGeometry ( 1 , 1 , 0 . 0 1 ) , new THREE . M e s h S t a n d a r d M a t e r i a l ( { c o l o r : 0 x 0 0 0 0 f f , emissive : 0 x0000ff , transparent : true , opacity : 0 . 9 } ) The calcPosSpectr() method computes the distance between the centre of the spectral line of a given order and the spectral line at zero order for the three colours (red, green, and blue) utilizing the formula (1). For example, the calculation for the first green line from the left is as follows (see listing 6) Listing 6: The fragment of method for calculation the distance between the spectral lines function calcPosSpectr ( ) { v a r e l e m L i n e = GroupDinamLine . getObjectByName ( ’ DinamLineLeftBox ’ ) ; var width_dinam_line = ( getWidth ( elemLine ) / 1 5 0 ) ; v a r PR = ( ( c u r r e n t P o s D i n a m B o x / 1 0 0 0 ) / currentGrattingSize ) ∗ 1000; v a r g l 1 = s p e c t r . rw ∗ 1 ∗ PR ; } The first two lines of the calcPosSpectr() method convert matrix distances into screen co- ordinates. The constant 150 is the length of the ruler on the dynamic screen. In code (5), the variable PR is equal to 𝐿𝑑 , spectr.gw is the width of the first green line. Students are expected to perform their own calculations, including using cloud-based plat- forms such as CoCalc, Maxima, etc [22, 23, 24]. As a result, the diffraction effect can be observed in camera #2 (see figure 6). It also allows the student to measure the position and width of the spectral lines. In addition, boundary conditions are imposed on the positions of the ruler and pointer to ensure that they do not exceed the permitted limits. The displacement of the ruler is exactly 1mm. This was achieved by editing the texture of the ruler itself. In the virtual lab, we made sure that the measurement result was not artificially tied to a particular value of physical quantities. This is why the diffraction pattern of the slit on the screen is slightly blurred. This makes it possible to obtain different values of distance during visual observation and to calculate the measurement error accordingly. The real diffraction spectrum can be seen in figure 7. As you can see, the image is rather unclear and it is difficult to determine the position of the spectrum by looking through the diffraction grating. For this purpose, a pointer is provided in the virtual work and it is possible to switch to the view of camera #3 to measure distances more accurately. 255 Figure 6: The view of the virtual laboratory from camera #2. Figure 7: Real diffraction pattern. 256 We compare the results of the virtual and real experiments. When students used a blue light filter during virtual laboratory work, the following data were obtained: light wavelength 𝜆 = 485 ± 12 nm with a relative measurement error of 2.3 %. During work on real equipment, the light wavelength was 𝜆 = 472 ± 25 nm with a relative measurement error of 5.3 %. As we can see, the results within the margin of error coincide and correspond to the wavelength of blue light. 3. Conclusions Developing virtual physics labs is a real problem. Modern digital tools such as frameworks and programming language libraries make this possible. Based on comparative analysis was selected one of these tools is Three.js. It is a JavaScript 3D library. In this research, the design and development of a virtual physics laboratory for studying the effects of diffraction using Three.js was carried out. The lab development process took place in several stages, such as creating scene, adding camera, creating main instances of classes (WebGLRenderer, OrbitControls), creating scene objects, and defining methods for calculating distances between spectral lines. The developed lab can be useful for blended learning in physics at colleges and universities. It can also be combined with real installations for the study of optics. The disadvantage of this virtual laboratory is the requirement of the Three.js library for modern hardware of the student’s or teacher’s device. This can be a limitation when working with older computers. Three laboratory virtual works out of five, which are provided by the curriculum of the "Physics" course covering different sections (mechanics, molecular physics and thermodynam- ics), were developed using this method. In the future, it is planned to complete the development of the remaining works and combine them into a single integrated environment. This will allow students, in addition to performing work, to collect and process experimental data and prepare reports. We see prospects for further research, such as development of a version of this labora- tory to provide student collaboration and its integration with modern learning management systems. References [1] E. K. Faulconer, A. B. Gruss, A review to weigh the pros and cons of online, remote, and distance science laboratory experiences, International Review of Research in Open and Distance Learning 19 (2018) 155–168. doi:10.19173/irrodl.v19i2.3386. [2] Laboratory Experiences and Student Learning, in: S. R. Singer, M. L. Hilton, H. A. Schwe- ingruber (Eds.), America’s Lab Report: Investigations in High School Science, Washington, DC, 2006, pp. 75–115. doi:10.17226/11311. [3] A. Striuk, O. Rybalchenko, S. Bilashenko, Development and using of a virtual laboratory to study the graph algorithms for bachelors of software engineering, CEUR Workshop Proceedings 2732 (2020) 974–983. URL: https://ceur-ws.org/Vol-2732/20200974.pdf. [4] V. Oleksiuk, O. Spirin, The Experience of Using Cloud Labs in Teaching Linux Operating System, in: O. Ignatenko, V. Kharchenko, V. Kobets, H. Kravtsov, Y. Tarasich, V. Ermolayev, 257 D. Esteban, V. Yakovyna, A. Spivakovsky (Eds.), ICTERI 2021 Workshops, Springer Inter- national Publishing, Cham, 2022, pp. 281–291. doi:10.1007/978-3-031-14841-5_18. [5] N. Balyk, V. Oleksiuk, Y. Vasylenko, G. Shmyger, Designing of Virtual Cloud Labs for the Learning Cisco CyberSecurity Operations Course, CEUR Workshop Proceedings 2393 (2019) 960–967. URL: https://ceur-ws.org/Vol-2393/paper_338.pdf. [6] P. P. Nechypurenko, S. O. Semerikov, O. Y. Pokhliestova, An augmented reality-based virtual chemistry laboratory to support educational and research activities of 11th grade students, Educational Dimension 8 (2023) 240–264. doi:10.31812/educdim.4446. [7] C. Chotimah, Festiyed, A meta-analysis of the effects of using PhET interactive simulations on student’s worksheets toward senior high school students learning result of physics, Journal of Physics: Conference Series 1481 (2020) 012093. doi:10.1088/1742-6596/ 1481/1/012093. [8] S. Siswoyo, D. Muliyati, Teaching high school physics using PhET interactive simulation, AIP Conference Proceedings 2331 (2021) 030003. doi:10.1063/5.0041657. [9] V. Vascak, Physics at school, 2023. URL: https://vascak.cz/. [10] S. K. Damekova, N. N. Shuyushbayeva, N. K. Tanasheva, G. S. Ahayeva, A. K. Kaliyeva, Additional education of schoolchildren in physics at the Children’s University, Bulletin of the University of Karaganda-Physics 1 (2021) 63–70. doi:10.31489/2021Ph1/63-70. [11] CK-12, CK-12 Interactive Physics for High School, 2023. URL: https://flexbooks.ck12.org/ cbook/ck-12-physics-flexbook-2.0/. [12] ExploreLearning, Online simulations for physics, 2023. URL: https://gizmos. explorelearning.com/physics-collection. [13] M. Holly, J. Pirker, S. Resch, S. Brettschuh, C. Gütl, Designing VR Experiences – Expec- tations for Teaching and Learning in VR, Educational Technology and Society 24 (2021) 107–119. URL: https://www.jstor.org/stable/27004935. [14] S. Manabe, C. Mouri, H. Tenzou, T. Kasuga, K. Motoki, Development of an AR chart tool for understanding invisible physical phenomena, AIP Conference Proceedings 1733 (2016) 020001. doi:10.1063/1.4948819. [15] D. S. Shepiliev, S. O. Semerikov, Y. V. Yechkalo, V. V. Tkachuk, O. M. Markova, Y. O. Modlo, I. S. Mintii, M. M. Mintii, T. V. Selivanova, N. K. Maksyshko, T. A. Vakaliuk, V. V. Osadchyi, R. O. Tarasenko, S. M. Amelina, A. E. Kiv, Development of career guidance quests using WebAR, Journal of Physics: Conference Series 1840 (2021) 012028. doi:10. 1088/1742-6596/1840/1/012028. [16] A. E. Kiv, V. V. Bilous, D. M. Bodnenko, D. V. Horbatovskyi, O. S. Lytvyn, V. V. Proshkin, The development and use of mobile app AR Physics in physics teaching at the university, CEUR Workshop Proceedings 2898 (2021) 197–212. URL: https://ceur-ws.org/Vol-2898/ paper11.pdf. [17] O. V. Kanivets, I. M. Kanivets, T. M. Gorda, O. V. Gorbenko, A. O. Kelemesh, Using a mobile application to teach students to measure with a micrometer during remote laboratory work, CEUR Workshop Proceedings 3364 (2023) 87–107. URL: https://ceur-ws. org/Vol-3364/paper08.pdf. [18] S. O. Semerikov, M. M. Mintii, I. S. Mintii, Review of the course “Development of Virtual and Augmented Reality Software” for STEM teachers: Implementation results and improvement potentials, CEUR Workshop Proceedings 2898 (2021) 159–177. URL: https://ceur-ws.org/ 258 Vol-2898/paper09.pdf. [19] D. S. Shepiliev, Y. O. Modlo, Y. V. Yechkalo, V. V. Tkachuk, M. M. Mintii, I. S. Mintii, O. M. Markova, T. V. Selivanova, O. M. Drashko, O. O. Kalinichenko, T. A. Vakaliuk, V. V. Osadchyi, S. O. Semerikov, WebAR development tools: An overview, CEUR Workshop Proceedings 2832 (2020) 84–93. URL: https://ceur-ws.org/Vol-2832/paper12.pdf. [20] T. A. Vakaliuk, S. I. Pochtoviuk, Analysis of tools for the development of augmented reality technologies, in: Proceedings of the 4th International Workshop on Augmented Reality in Education (AREdu 2021), volume 2898, 2021, pp. 119–130. URL: https://ceur-ws.org/ Vol-2898/paper06.pdf. [21] R. Cabello, Three.js docs, 2023. URL: https://threejs.org/docs/. [22] P. V. Merzlykin, M. V. Marienko, S. V. Shokaliuk, CoCalc: an integrated environment for open science education in informatics and mathematics, CEUR Workshop Proceedings 3482 (2023) 39–53. URL: https://ceur-ws.org/Vol-3482/paper025.pdf. [23] S. Papadakis, A. E. Kiv, H. M. Kravtsov, V. V. Osadchyi, M. V. Marienko, O. P. Pinchuk, M. P. Shyshkina, O. M. Sokolyuk, I. S. Mintii, T. A. Vakaliuk, A. M. Striuk, S. O. Semerikov, Revolutionizing education: using computer simulation and cloud-based smart technology to facilitate successful open learning, CEUR Workshop Proceedings 3358 (2023) 1–18. URL: https://ceur-ws.org/Vol-3358/paper00.pdf. [24] M. Shyshkina, U. Kohut, M. Popel, The comparative analysis of the cloud-based learning components delivering access to mathematical software, CEUR Workshop Proceedings 2393 (2019) 93 – 104. URL: https://ceur-ws.org/Vol-2393/paper_241.pdf. 259