Rapid Prototyping of Computer Simulations
Server Side
See Falcetto on Kickstarter Open in New
Thanks for viewing this project!  Improved graphics, and a video will be coming soon.  Even if you don’t become a backer, you can still be a great help by sending feedback and suggestions!  Thanks!

Introduction – What Falcetto is about


Falcetto in a nutshell

                Falcetto allows a student or scientist to easily and quickly perform computer simulations.  It handles the overhead of data storage, graphics, user input, simulation processing, and results viewing.  This allows the user to focus on making their computer simulation functional and accurate, allowing most anyone to write a computer simulation, not just computer scientists.

                Falcetto will be free to use, and compatible on most every internet enabled device.  The target timeline is to have it ready for Beta testing at the end of the 2014 Spring semester, and ready for mainstream use by the 2014 Fall semester.  Kickstarter support will allow me to devote enough time to this project to be able to meet these deadlines.

                Falcetto will be a HTML/JavaScript application, thus its high degree of compatibility.  The HTML/JavaScript application will be free for use and download, and will also be available as a downloadable application for most device platforms, allowing offline use.  Server Side features will exist that will allow the heavy processing to be done “in the cloud” rather than burning up the battery on mobile devices.  Server Side features will also allow functionality that JavaScript is not able to perform, such as creating video files or processing spreadsheet files.


Falcetto’s Name

                Falcetto is Italian for sickle, which is a diminutive form of Falcet, which is a scythe.  It is quite similar to falsetto, which is the diminutive form of “false” in Italian.  When I accidentally found this word, I felt it was perfect for this project.  To me, it represents how this software allows a person to create small simulations, and quickly harvest results.  It’s similarity to “false” also brings to mind how a simulation is a reflection of something real, but is itself not quite real, thus somewhat false.


The goals of this software

                Falcetto targets three main audiences:  students that are just starting to learn computer programming, college students and hobbyists trying out their ideas, and scientists wanting to find out what paradigms they need to build into their own proprietary software.  Falcetto’s many features will appeal to each group differently.

Computer Simulations are a great way to play around with concepts being taught in school, such as math and physics.  Unfortunately, computer Simulations require a great deal of knowledge about computer science and writing software.  Typically a person would need to write software to access their data, visualize their data, cycle through the steps of their Simulation, accept User interactions, display the results of their Simulation, and prepare the results for sharing with other people.  Each of these steps has its own unique problems and pitfalls, which distract the student from the logic of the Model being simulated.  By handling all these aspects, Falcetto provides an environment where a student can learn computer programing, create interesting software (compared to “Hello World”), and create useful simulations that help them learn their other academic subjects.

                Falcetto also helps to educate students on the concepts and implementation details of computer Modeling and Simulation.  One of the biggest concepts a student must learn is how to manage a computer’s accuracy.  No computer Simulation can ever be 100% accurate, so it is the job of a computer scientist to determine the best way to get accuracy, given constraints such as processing power and time.  The student does not need to write any of this accuracy logic in Falcetto, all they need to do is use some popups to set these settings.  Help documentation, or teachers, can then explain what these settings do, and how they trade speed and accuracy.

                For the college student or hobbyist, Falcetto provides a way of building a complete simulation, with enough customization to handle most every situation.  The user can use custom images for the visualization, create data charts for presentations, and create interactive simulations.  With the appropriate stretch goals met, a user can also save videos of the simulation, or save their simulation as a stand-alone application that can be distributed as a phone app via PhoneGAP.

                For the professional scientist, Falcetto provides a way to pioneer new ideas without spending time on tedious computer programming.  The user can compare different modeling techniques, discover useful defaults, and examine the simulation in an easy to use GUI.  Usually a scientist will need to eventually re-write their model and simulation into another language, but using Falcetto will allow them to know which features they need to re-write.  For instance, Falcetto will allow the scientist to determine if an easy to write fixed time step provide enough accuracy, or whether they will need to spend the extra time to write dynamic time step support.  Being able to pause and edit a simulation will allow the scientist to quickly bounce between ideas until something works, rather than having to re-run the entire simulation to try out a new idea.


Conventions used in this description

                Throughout this description, the current anticipated default values and settings may be discussed.  During the Beta period, these defaults may change based on feedback from Users. 

Throughout this description, Falcetto will be described in the present tense rather than future tense.  While Falcetto does already exist as an old Matlab application I wrote for my Master’s, I chose to use the present tense more dramatic effect, and because the software does exist in my mind.

Throughout this description, I will capitalize certain words that wouldn’t normally be considered a proper noun.  These terms should all be listed in the Glossary of Terms at the end of the description.


What is "free" and "Open"

I intend to keep Falcetto free to use.  I have chosen the GPLv3 license for the overall software, with some reusable components being LGPLv3.  The general intention will be that anyone can view and read the code, customize the code/appearance, and redistribute it onto their servers.  Another intention of making it open source is to allow administrators to verify that their personal data isn’t being stolen or sold. While Falcetto can be used for commercial purposes as an application, I do not intend to let the license allow people to sell their customized versions as their own software.  On the other hand, exported data and applications (such as the “Export the Model as a standalone app” stretch goal) can be sold by their creators, hence the need for some LGPLv3 licensing.  A forum will be set up in the community to allow users to share any customizations or improvements they make, so that such improvements or customizations can be made available to everyone.

Falcetto's application software (JavaScript) will be free for anyone to download and use (LGPLv3 and GPLv3). There will likely be a minified version for faster download, but a fully readable version will also be available. This can be copied to any web server and hosted (mirrored), which is especially useful for networks that are cut off from the internet.  Common customizations (like which Server Side server to point to, or a school logo to display) will be easily made by a customization file, so you won’t have to dig into the code.

Falcetto's Server Side software will be openly available as well (GPLv3). Instructions and helper scripts for installing it on your own server(s) are not planned for this timeline (absolute last stretch goal), so it will only be for the tenacious system administrator.  This can be especially important for networks that are cut off from the internet, in order to allow them access to Server Side features since they will not have access to the subscription based Server Side features.  REST-ful APIs will exist for managing aspects like accessing stored models, simulation results, and Black Box model access.  You will need to manage users and logical data separation, likely with an off-the-shelf forum package.

The Community, Marketplace, and the subscription service are all going to be proprietary. Instead of setting up Falcetto's Server Side code on your own server, you could just purchase a subscription to use the service I will set up.  These are basically just the “forum package” mentioned in the previous paragraph, but designed for public access rather than private access.

Content ©2014-2020 Ether Tear LLC. Website powered by Ether Tear LLC, ©2013-2020