The live version of this web project can be found at http://jackyx-zhou.github.io/ca-ml-webapp.
I use p5.js to simulate and showcase most of the pattern formation process for simple cellular automata.
Transferring my prior knowledge of using Tensorflow 2.0 on Python, I use tensorflow.js to train simple machine learning model on client side, and use tfjs-vis to visualise training progress and model details.
I choose to use React.js as the main tool to handle rendering, mainly trying to make the webapp as light-weight, responsive and mobile-friendly as possible. It also does not really require storing much of user's data besides doing some client-side ML calculation, so I think so far there is not a need to build a complete backend structure. There are drawbacks in not using a server to do the heavy-lifting machine learning tasks, but it also pushes me to consider and test more on the performance of my machine learning models.