This article is written like a story.(September 2008) |
SodaConstructor | |
---|---|
Developer(s) | Soda Creative Ltd |
Publisher(s) | Soda Creative Ltd |
Designer(s) | Ed Burton |
Platform(s) | Any |
Release | April 5, 2000 |
Genre(s) | Simulation |
Mode(s) | Single Player |
Soda Constructor is a Java based physics engine, which was central to Soda's collaborative learning environment Sodaplay.com. It was created by Ed Burton, Soda's Research and development Director, in April 2000. [1] It won an Interactive Arts BAFTA Award in 2001. [2]
Sodaplay.com users use constructor to create and share "models". These models are made of "masses" and "springs" and follow strict physical laws. By turning springs into "muscles", models can be animated and made very lifelike. [3]
Around 1990, Ed Burton created the precursor to sodaconstructor - a BASIC program entitled "Constructor" which contained some of sodaconstructor's modern functionality, with both springs and masses, but not muscles, available for construction. This program was never released and was never intended for general use.
In May 1998, Ed Burton joined Soda, and it was around this time that he wrote the first Java version of the Constructor, mostly as a fun way to teach himself Java. The Soda team experimented with the program, creating the twelve basic models that are now presented as examples. This version of the program existed quietly on the soda website, still not being advertised or spread as an official Soda product. This small project eventually began to evolve into the "sodaconstructor", spreading only by word of mouth.
By early 2001, as the number of active users began to grow, the team realized a save function was necessary to allow people to store the models they had created. With this feature, the Soda team began to emphasize sodaconstructor on their site and created the Sodazoo, a list of user-created models that had been deemed noteworthy enough to capture and share among the community which was growing around the applet. Soon after this, a forum was created in order to support the fan base and encourage discussion of models and construction techniques.
Around late August 2007, Ed Burton and the soda team released Sodaconstructor II, an improved version of the classic sodaconstructor. It had a more standard interface, based around built-in features instead of the older sliders and menus built from scratch. It also allowed users to download, modify, and load the XML data used to store models, leading to some scripted tools being used for precise construction and introduced solid springs which masses would bounce off of. However, reaction was generally negative, as most users preferred the older interface due to its simplicity and flexibility. Another issue was the fact that due to small tweaks in the physics engine and XML format, some old models which relied on precise timing no longer functioned properly with the new applet.
The community found the files required to run the old version, and XML converters were written, so both versions are now able to be used.
Recently even more features have been added, expanding the sodaplay universe: sodarace [4] and SC Local. [5] Sodarace is a program where constructors can pit their models against other constructors' models on varying terrains, to see whose is faster. There is a sodarace league forum on the sodarace website, intended for challenging others to a race or showing off your model's prowess in previously created races.
Along with sodarace came Sodaconstructor Local, which is an offline form of sodaconstructor. With it you can import and export models from and to your computer. Models on your computer are stored in an XML format, allowing you to edit your model in a text editor and import it back into sodaconstructor. Obviously not everyone would be interested in doing this, but it certainly gives constructors an edge in racing or the artistic aspects of their models.
As sodaconstructor has developed, constructors have become more and more clever at using the software to create exceedingly complex models, some of which even contain "motors" (self-contained structures that can power an entire model). Sodaconstructor continues to evolve and expand, with no sign of stopping.
The sodaplay community is small but diverse. While thousands of sodaplay creations are created, the forum is visited by only a few daily. Meanwhile, the number of sodasites are very small. Also the presence of the sodateam is noticed as very inactive.
Global moderators make rare appearances on the forum. It is believed that they get online to sort matters out, promote/demote, or do other administrative things.
As the tools became obsolete, redevelopment was considered too costly and Sodaplay.com was first archived with modelling tools made unavailable but the model archive maintained. In 2017 the archive was taken offline and the sodaplay redirected to Soda's home page.
In computing, an applet is any small application that performs one specific task that runs within the scope of a dedicated widget engine or a larger program, often as a plug-in. The term is frequently used to refer to a Java applet, a program written in the Java programming language that is designed to be placed on a web page. Applets are typical examples of transient and auxiliary applications that do not monopolize the user's attention. Applets are not full-featured application programs, and are intended to be easily accessible.
JavaScript, often abbreviated as JS, is a programming language and core technology of the Web, alongside HTML and CSS. 99% of websites use JavaScript on the client side for webpage behavior.
Java applets were small applications written in the Java programming language, or another programming language that compiles to Java bytecode, and delivered to users in the form of Java bytecode. The user launched the Java applet from a web page, and the applet was then executed within a Java virtual machine (JVM) in a process separate from the web browser itself. A Java applet could appear in a frame of the web page, a new application window, a program from Sun called appletviewer, or a stand-alone tool for testing applets.
Java is a high-level, class-based, object-oriented programming language that is designed to have as few implementation dependencies as possible. It is a general-purpose programming language intended to let programmers write once, run anywhere (WORA), meaning that compiled Java code can run on all platforms that support Java without the need to recompile. Java applications are typically compiled to bytecode that can run on any Java virtual machine (JVM) regardless of the underlying computer architecture. The syntax of Java is similar to C and C++, but has fewer low-level facilities than either of them. The Java runtime provides dynamic capabilities that are typically not available in traditional compiled languages.
A Java virtual machine (JVM) is a virtual machine that enables a computer to run Java programs as well as programs written in other languages that are also compiled to Java bytecode. The JVM is detailed by a specification that formally describes what is required in a JVM implementation. Having a specification ensures interoperability of Java programs across different implementations so that program authors using the Java Development Kit (JDK) need not worry about idiosyncrasies of the underlying hardware platform.
Java Platform, Standard Edition is a computing platform for development and deployment of portable code for desktop and server environments. Java SE was formerly known as Java 2 Platform, Standard Edition (J2SE).
In computing, aspect-oriented programming (AOP) is a programming paradigm that aims to increase modularity by allowing the separation of cross-cutting concerns. It does so by adding behavior to existing code without modifying the code, instead separately specifying which code is modified via a "pointcut" specification, such as "log all function calls when the function's name begins with 'set'". This allows behaviors that are not central to the business logic to be added to a program without cluttering the code of core functions.
X3D is a set of royalty-free ISO/IEC standards for declaratively representing 3D computer graphics. X3D includes multiple graphics file formats, programming-language API definitions, and run-time specifications for both delivery and integration of interactive network-capable 3D data. X3D version 4.0 has been approved by Web3D Consortium, and is under final review by ISO/IEC as a revised International Standard (IS).
Java Management Extensions (JMX) is a Java technology that supplies tools for managing and monitoring applications, system objects, devices and service-oriented networks. Those resources are represented by objects called MBeans. In the API, classes can be dynamically loaded and instantiated. Managing and monitoring applications can be designed and developed using the Java Dynamic Management Kit.
A Rich Internet Application is a web application that has many of the characteristics of desktop application software. The concept is closely related to a single-page application, and may allow the user interactive features such as drag and drop, background menu, WYSIWYG editing, etc. The concept was first introduced in 2002 by Macromedia to describe Macromedia Flash MX product. Throughout the 2000-s, the term was generalized to describe browser-based applications developed with other competing browser plugin technologies including Java applets, Microsoft Silverlight.
In software engineering, dependency injection is a programming technique in which an object or function receives other objects or functions that it requires, as opposed to creating them internally. Dependency injection aims to separate the concerns of constructing objects and using them, leading to loosely coupled programs. The pattern ensures that an object or function which wants to use a given service should not have to know how to construct those services. Instead, the receiving 'client' is provided with its dependencies by external code, which it is not aware of. Dependency injection makes implicit dependencies explicit and helps solve the following problems:
A user interface markup language is a markup language that renders and describes graphical user interfaces and controls. Many of these markup languages are dialects of XML and are dependent upon a pre-existing scripting language engine, usually a JavaScript engine, for rendering of controls and extra scriptability.
TestNG is a testing framework for the Java programming language created by Cedric_Beust and inspired by JUnit and NUnit. The design goal of TestNG is to cover a wider range of test categories: unit, functional, end-to-end, integration, etc., with more powerful and easy-to-use functionalities.
Apache Wicket, commonly referred to as Wicket, is a component-based web application framework for the Java programming language conceptually similar to JavaServer Faces and Tapestry. It was originally written by Jonathan Locke in April 2004. Version 1.0 was released in June 2005. It graduated into an Apache top-level project in June 2007.
In computing, Java Web Start is a deprecated framework developed by Sun Microsystems that allows users to start application software for the Java Platform directly from the Internet using a web browser. The technology enables seamless version updating for globally distributed applications and greater control of memory allocation to the Java virtual machine.
Java is a set of computer software and specifications that provides a software platform for developing application software and deploying it in a cross-platform computing environment. Java is used in a wide variety of computing platforms from embedded devices and mobile phones to enterprise servers and supercomputers. Java applets, which are less common than standalone Java applications, were commonly run in secure, sandboxed environments to provide many features of native applications through being embedded in HTML pages.
The Spring Framework is an application framework and inversion of control container for the Java platform. The framework's core features can be used by any Java application, but there are extensions for building web applications on top of the Java EE platform. The framework does not impose any specific programming model.. The framework has become popular in the Java community as an addition to the Enterprise JavaBeans (EJB) model. The Spring Framework is free and open source software.
Easy JavaScript Simulations (EJSS), formerly known as Easy Java Simulations (EJS), is an open-source software tool, part of the Open Source Physics project, designed for the creation of discrete computer simulations.