# Democratizing Deep Learning Applications in Earth and Climate Sciences on the Web: EarthAlHub
## 1 Introduction
Besides all these examples, Nvidia's NGC Catalog [5] also provides many state-of-the-art models with instructions on how to run them on containers. Besides the aforementioned model zoos, a rare minority of studies in the literature choose to provide a working application, most of the time in the form of a web application. This has been mainly for generative works, as these models typically expect minimal input from the user. Thus, they are easier to conceptualize on the web, though, most of the time, not by the original authors. Such examples are primarily in the \"this thing does not exist\" format. They typically show a completely new output generated by the proposed network at each reload of the web application. The list of studies employing this approach includes, but is not limited to, face generation [3; 10], vase image generation [11], resume generation [12], and artwork generation [13]. Beyond these, some of the ONNX models from the ONNX zoo that are presented on the ONNX.js [14] demo website, such as emotion detection [15] and object detection [16], also apply. There are also other practical applications of deep learning models available on the web, such as Quick Draw by Google, which predicts what a user is drawing [17], and pix2 pix [2], which converts your drawing to a photo [18]. Online deployments of language models such as GPT-3 [19] can also be mentioned as examples of deep learning models running on browsers. It should be noted that, even though some of the studies mentioned here use server-side resources, they typically utilize client-side resources. One commonality among these models is that they depend on individual efforts to communicate their findings. Aside from the ONNX.js showcase, which is only for demonstrative purposes, they do not share a common platform or methodology to include non-technical people in AI research or other domains. In order to understand how deep learning models could be run on the web, specifically on the client side, it is of utmost importance to discuss how client-side computing is performed. Conventionally, computing on the web has primarily been for citizen science purposes. From extraterrestrial research [20] to hydroscience [21], there are many studiesin the literature that take advantage of the client-side resources of volunteers to advance science, some of which are on browsers. With deep learning being a part of many applicable studies, ways to utilize computing on browsers have been explored for deep neural networks as well. The literature on client-side tensor computing libraries, in other words, deep learning frameworks that work on browsers, is abundant. ONNX.js, Keras.js [22], and TensorFlow.js [23] are popular libraries used in many studies. Open Neural Network Exchange, or ONNX, is a library that aims to be middleware between many tensor computing libraries, such as TensorFlow, PyTorch [24], and MXNet [25]. ONNX provides programmable interfaces to convert models between popular tensor computing libraries. Even though ONNX has its own runtime as a Python package to run converted models, one can also convert an ONNX model to another framework's model format. Beyond Python, the ONNX ecosystem provides a package to run ONNX models on browsers called ONNX.js. ONNX.js, though with limitations in terms of implemented architectures, provides a medium to run ONNX models in browsers. For performance purposes, the ONNX.js runtime supports web technologies such as WebAssembly and WebGL. One drawback that ONNX and inherently ONNX.js carry is that one cannot train a model with them. Considering that they do not aim to provide training functionality in the first place, this is an arguable drawback. It should be noted that ONNX.js was replaced by ONNX Runtime Web [26], which also works in JavaScript. Since it is still in active development, it does not provide a viable framework to build a generalized deep learning platform with. One popular deep learning package for JavaScript and browsers is Keras.js.