Inspiration

Learning science without experiments is like listening to a bad joke, you don’t get it. (haha) But in the midst of this pandemic, with school closed off and national examinations inching closer every second, where do students and teachers go to find an alternative to physical laboratories? The answer is as always, Augmented Reality.

What it does

Our virtual laboratory provides a platform for students to carry out these experiments from the safety of their homes while not compromising on rigour and detail, dutifully educating our scientists of the future. Focusing on the acid-base titration experiment (a standard chemistry experiment for middle to high school students worldwide), our project aims to illuminate its procedure and underlying concepts, which are fundamental to a student's chemistry education.

How we built it

Spark AR studio provided the perfect platform to realise this idea. It begins by using the Plane Tracker to identify a surface (e.g. a table) where the user (the student) can conduct the experiments. The experiment apparatus — retort stand, burette, conical flask, etc. — will then be presented to the user, who then sets them up by panning and dragging the objects around in the World AR scene. The Native UI picker then allows the user to pick the chemicals to be placed in the burette and the conical flask respectively, and also the indicator to be added to the solution in the conical flask. Text displays on the right of the screen shows the user the chemicals chosen, as well as the current burette reading and the pH of the solution in the conical flask.

The user then has two controls available for conducting the experiment: long-press and single-tap. Ideally, the user would start by long-pressing the burette to allow a stream of chemicals to flow from the burette to the conical flask. (this is equivalent to opening the burette tap to full) The stream of liquid flow is visualized with a coloured particle emitter in the World AR scene. Then, when nearing the end-point of the titration, the colour in the conical flask would change, signalling the user to switch from long-press to single-tap control. By single-tapping, the user has a much finer control over the flow rate from the burette, allowing 0.1cm^3 of solution to flow “drop-by-drop” each tap. Finally when the user is within 0.2cm^3 from the end-point, the colour would change again, indicating the user to stop the titration and record the result.

However, if the user happens to exceed the end-point, the colour of the solution would still continue to change as the colour of the indicator directly reflects the pH of the solution in the conical flask.

Challenges we ran into

For both of our group members, this was our first experience with SparkAR. Due to our unfamiliarity with the studio, it was difficult to grasp the capabilities and limitations of the SparkAR modules from the limited amount of examples of documentation and examples available online.

But we were able to find workarounds for many of the problems we faced, such as changing the colour of the solution at discrete intervals instead of continuously as we could not directly edit the RGB colour of the material within the script. When working on the details of the project, we were stuck at managing the pH calculations for an arbitrary titration, where the mathematics turned out to be quite involved, hence we decided to reduce the complexity by mainly considering strong-strong and strong-weak titrations. Most of the problems we faced were resolved in this way of finding compromises

Accomplishments that we're proud of

Getting through the whole project without using patch editor.

What we learned

Reactive programming, Native UI picker, Animations in SparkAR studio, 3D modelling

What's next for expARiment

Implement more chemicals, such as strong/weak acids/bases, and different types of chemistry reactions besides titration, such as gas collection, heat decomposition and crystallization.

Physics experiments are also possible! Mechanics simulations can be done easily using cannon-js, where students can experiment with falling objects to measure gravitational acceleration, or set up a simple pendulum to measure the period of its oscillations.

The potential for expARiment is endless!

Built With

Share this project:

Updates