Rapid Prototyping of Computer Simulations
Server Side

Glossary of Terms


                Aberration – refers to an Instance that has its own custom code, which makes its behavior an aberration of the Class behavior.  This term is not a standard Modeling and Simulation term, but is instead a term that is just used by Falcetto.  In standard programming terminology this would be similar to a subclass.

                Accuracy – in this context, there are two uses.  One is to measure how close the model and simulation are to real data at the end of a simulation, and the other is to measure the amount of change for individual variables during simulation.  As the goal is to make a simulation that is accurate and can correctly predict “what happens next,” Falcetto applies per-variable accuracy to keep track of whether any particular variables have changed “too much” for the final result to be accurate.

                Agent – this is another term for Node.  It represents how each Node is a free agent which won’t be directly controlled by any other Node.

                Analog – means that information is stored in a more natural state, and can represent a seemingly infinite number of values for any particular digit.  An analog computer may store something like a charge of 9.74232 volts for a digit, allowing a single digit to have a lot of precision.  Unfortunately, the components that store the charge may “lead” meaning that 9.74232 was not the value that was supposed to be stored.  Analog systems are infamous for loss of quality as a person makes a copy of a copy.

                Atom – refers to an Element that has no underlying logic or variables.  It is the most basic Element within Falcetto.  These are used as the building blocks to create Classes.

                Black Box – means that the inner workings are not available to the person looking at it.  Falcetto supports the use of Black Box model components, to allow users to build a complicated model using Classes that were developed by someone else.  This can be useful for selling model components via the Marketplace, or for a teacher to give their students unchangeable building blocks for an assignment.

                Class– this is a way of storing a set of code and variables such that it can be re-used without copy-pasting it.  If a change needs to be made, it can be made once on the Class, and affect all Instances of the Class.

                Client Side – this indicates logic that is performed on a person’s own computer or device.   Falcetto’s free functionality is all run on the user’s own device.  Other functionality is available Server Side.

                Cloud – refers to servers that live in a special configuration designed to provide easily scalability and high reliability.  It is an evolution of the server cluster concept by allowing servers to move between servers on demand, rather than being stuck within a particular cluster.

                Continuous – unbroken, in this context it is the theoretical ideal that discreet event simulation is attempting to simulate.  For example, there are an infinite number of points of time between 1.2 seconds and 1.3 seconds.  In reality, an object exists at all of those infinite points in time.  Instead of our computers “wasting” infinite processing cycles to move between these two points in time, we instead come up with ways to approximate the changes that occur during that time span, and only process as many cycles as necessary to keep the approximations acceptably accurate.

                Convergence – refers to math that uses several processing cycles to arrive at an answer that represents a single moment in time.  For example, in an electrical power system we know how much power is generated at each plant, and how much power is used by each city, but to determine how much power is traveling over each power line we use convergence to effectively try different answers until it balances correctly.

                Device – in this context it is any electronic machine that can successfully run Falcetto through a web browser or via a downloadable application (where available).  Falcetto is designed to operate on any device that supports HTML 4 and JS.  Thus “Device” effectively means every computer, tablet, smartphone, and even most modern video game consoles.

                Digital – means that information is stored in finite “digits,” and as such can only approximate some values that exist in between those digits.  Our modern computers are digital, where the digits are “binary” and represented as “off” and “on.”  Since these two values are so drastically different, modern digital computers are very good at ensuring the values are correctly stored and transmitted.

                Discreet – in this context, it is similar to “finite.”  A digital computer is unable to simulate all points in time, so it must instead simulate particular points in time.  For example, the computer may simulate events at 1.2 seconds and 1.3 seconds, and such it will have to guess and approximate what happens for the .1 seconds in between.  The processing at 1.2 and 1.3 seconds are the “discreet” events that it simulates.

                Dynamic – means changeable, and reactive.  For Falcetto this refers to the time based simulation mode where the time step adapts to how accurate a processing cycle was.  If the data didn’t change much, then it should be safe to use a larger time step.  If the data changed a lot, then it should reduce the size of the time step to maintain accuracy.  Falcetto manages this logic, so the users does not need to.

                Edge – typically represent a connection between objects.  This can be intangible relationships, such as familial ties, or it can represent tangible connections such as a power line.

                Element – this is a term used by Falcetto to represent either a Node or an Edge.  It is a piece of the model that can run code, store variables, and be turned into a Class if desired.

                Framework – a framework is a construct that provides commonly required functionality, so that it does not need to be re-built each and every time a product is constructed.  It also makes constructing the product much faster.  For example, having scaffolding allows masons to build a tall wall faster than without scaffolds, and usually the scaffolds are built once and re-used on other projects.

                Global – represents variables and objects that can be seen by all objects in a model.  For example, there may be a global variable named “gravity” that all objects can use to determine how much they are affected by the force of gravity.

                Graph – is a way to visualize a model of a system.  Uses Nodes connected by Edges to represent the objects in the system and how they are related.  Nodes are typically drawn using circles, while edges are lines that connect the circles.

                GUI – Graphical User Interface, is how a person communicates with a computer, but using as few text components as possible.  GUI are centered around the use of a mouse or touchscreen, buttons, and icons.

                HTML – HyperText Markup Language is the primary document format of the world wide web.  These are text files that can be edited using the simplest of text editors, or can be generated using advanced tools.  Documents can embed images, videos, or scripts that provide interactivity or changes to the document.

                HTML 5 – The fifth major revision of HTML.  HTML 5 is the new cutting edge web browser technology.  Older browsers do not support HTML 5 features, but new devices have browsers that do support HTML 5.  Falcetto will not rely on HTML 5, but will optionally allow its use for certain components in order to provide improved functionality.

                In-Place editing – refers to being able to edit something without having to change what is being viewed on the screen.  This is analogous to how we can now zoom in on GPS maps, rather than turning pages in an atlas.  It allows the user to see more detail, without having to being disoriented by shifting their view.

                Instance – a particular copy of a class.  Each instance is independent of other instances, and can have their own values for different attributes, yet their behavior and available attributes come from the common source of the class.  For example, you and I are both instances of human beings, but my eye color, hair color, height, weight, etc. are likely different than yours, yet we both share behaviors like needing to breath.

                JS – JavaScript is the primary scripting language embedded within HTML.  Since it can be run on any computer or device, it is an easily accessible language for teaching computer programming.

                Library Item – is another name for Class.

                Modal – is a term for a window or popup that demands attention before allowing focus to return to the underlying window.  The most common modal windows we see when using computers is a warning or error message that requires the user to click the “OK” button before allowing the program to continue being used

                Model – a computer representation of a system.  Usually requires simplification of many aspects of the system.  For instance, an electric power model may represent a city as single object, rather than representing it with more details, such as on a per house basis.

                Node – typically represents a tangible object, including people.  Nodes are usually drawn as a small circle on the graph.

                Normalization – is the process of converting data into an expected format.  The vector mathematics use of normalization is to extract just the direction component of a vector.  For event simulation, it can refer to scaling variables so that they are all operating on the same magnitude, in order to determine if changes are within allowable bounds.

                Offline – is when a Device is not connected to the internet, or at least unable to contact the Falcetto servers.  Falcetto can still perform most all key tasks while offline, and will be available as a downloadable application for the major smartphone and tablet platforms.

                Online – is when a Device is connected to the internet, and can contact the Falcetto servers.  When online, Falcetto can receive updates, share results, and queue Server Side commands, when available.

                Parallel Processing – is when multiple pieces of the same simulation are being solved at the same time by different computer processor cores.  This allows a simulation to be processed faster than if only 1 processor core is utilized.  Parallel processing is only available as a Server Side feature.

                Server Side – this indicates logic that is performed by a different computer than the person’s own computer.  For example, when you use an internet search engine, some computer (usually in California) does all the searching “server side,” then sends a list of results to your device for display on the Client Side.

                Simulation – using a computer model to find out “what happens next.”  The same model may be used, with slight changes, to create different simulation results.

                Static – means constantly available, or unchanging.  For Falcetto this refers to the time based simulation mode where the time step does not change in between processing cycles.  This provides a quicker and more predictable simulation run time, but sacrifices the simulation’s accuracy.

                System – a real life thing that is being represented in the computer model.  An electric power system is the collection of power plants, power lines, and cities that use power.  A social system is the collection of people, and how they communicate or relate to each other.

                UI – User Interface, is how a person is able to send commands to a computer, and to understand the results of the computer’s actions.  Typically this falls into categories of “text based” and “graphical” interfaces.  This isn’t just “brass tacks” though, it does include making the interface easy to use, such as including help, useful labels, and intuitive layout.

                User – in this context, is a person that is using Falcetto.  This is the person that is issuing commands to Falcetto, and to which Falcetto must effectively communicate results to.

                Variable – represents a value that can change, could also be called an attribute.  For example, a Node that represents a person could have a variable representing how much money they have on hand, and this amount can change throughout a simulation.  Variables are usually referred to by name, so in this example it may be a variable named “wallet” and can be used in commands like “wallet -= 5;” to take 5 dollars away from the wallet.
