Skip to main content

DPS909 - Lab 1 - Github Trending Research: WebGL Fluid Simulator

The WebGL Fluid Simulator is a small application that allows the user to play with simulated fluids right in their browser, and works on both PCs and mobile devices. The visual effects follow proper fluid dynamics, and can be manipulated in real time by pointing and click, as well as several available options such as quality, density, and velocity.  The app is written in JavaScript, and as the name suggests, visually renders its effects using WebGL. It was created by Github user PavelDoGreat based off another Github project: Fluids-2D, and is distributed under the MIT license. As of September 8th, 2019, WebGL Fluid Simulator is trending with 2,307 stars during the month, and 6,070 stars in total.

Main interface of WebGL Fluid Simulator by Github user PavelDoGreat

I was interested in investigating this project as it demonstrates the breadth of open source resources on Github. Users can find projects that range from complex systems and APIs, to small plug-ins and simple applications. Since the creator distributed the project under the MIT License, the Fluid Simulator project respects the knowledge-sharing model of open source softwares. If one wished, they can copy, utilize, alter, and re-distribute the source code of Fluid Simulator into their own works, provided that the licensing and disclaimer text is preserved. For example, one could investigate the Javascript files in the Fluid Simulator project to find the implementation for fluid physics, and use that in something of their own creation (such as a computer game engine).

It is in the spirit of open source to both give and take. Hopefully, those interested enough in PavelDoGreat's Fluid Simulator will contribute back to the project by helping to address some of the ongoing issues, of which there are currently 11 (for example, there is currently a bug that prevents multi-touch capabilities when Fluid Simulator is run in Firefox). Additionally, one may choose to "spin off" the project by forking the repository onto their own Github account, and taking the project in a whole new direction. Given the high amount of stars this project has received, perhaps in the future we may see some forks of Fluid Simulator taking on some fame of their own.

Resources:

Popular posts from this blog

DPS909 - Lab 2 - Git Practice: Simple Noter App

Once again, I am continuing my journey to become a full-fledged member of the open source community. For this small milestone, I am practicing the creation and management of a Github repo using git bash on my local machine. For test material, I have created an incredibly simple, browser-based sticky note app, appropriately called Simple Noter. For those interested, the final product is hosted on Github Pages, and can be found here: https://jerryshueh.github.io/simple-noter/ The app itself is very basic - simply type a note into the text space and hit CTRL + X to save. Your note will be saved between sessions until you clear your browser's local data. It uses a number of open source and free-to-use resources, such as Kenny Wong's Hotkeys.js , and Google Fonts. By the way, something I've learned is that all Google Fonts are distributed under the SIL Open Font License, which allows anyone to use and modify them for personal or commercial purposes. As for the learning proce...

DPS 909 - Release 0.2 - Hacktoberfest Week 2

For week 2 of Hacktoberfest, I decided to do some actual coding! Github user ZoranPandovski has an absolutely amazing project that is perfect for novice contributors: simply code an example of any programming design pattern in the language of your choice! The issue can be found here , so please post to the thread if you wish to take part in this project. You can also contribute explanations about each design pattern to the repo's documentation - it's a great way to share your knowledge! Don't know what design patterns are? No worries, there are plenty of online resources to learn about them. Design patterns are a fundamental aspect of programming logic and software design, so if you really want to get serious about programming, then study up! After you've learned all you can about design patterns, why not flex your newfound skills by contributing to ZoranPandovski's project? For my contribution, I've written some very simple C++ code to demonstrate the ...