This is a version of Paul Falstad's circuit simulator (original available at http://www.falstad.com/circuit/) with the following improvements:
- fixed import/export when running as an applet
- it is now possible to save/load to/from a file when running as an application
- the circuits that appear in the "Circuit" menu may now be bundled with the jar file.
- many interface improvements: double click to edit, Delete key to delete a component, cursor changes to crosshairs when in place mode, Esc goes back to move/interact mode, ...
- separated keyboard shortcuts from dump types (this makes it easier to configure shortcuts without changing the file format)
- WireElm is now a subclass of ResistorElm (without this change, whenever you use two switches in parallel, you get the error "voltage source/wire loop with no resistance")
- some cosmetic improvements (like starting with a white background as default)
If you have make installed, just cd
to the src directory and run make
, followed by a make jar
If not, compile with javac *.java
and build the jar file with jar cfm circuit.jar Manifest.txt *.class *.txt circuits/
As an application: java -jar circuit.jar
If you want to use the circuit simulator as an applet, create an html file and load the applet with:
<applet code=Circuit.class archive=circuit.jar width=600 height=50>
Sorry, you need a Java-enabled browser to see the simulation.
<param name=pause value=20>
</applet>
If you want to enable import/export of circuit files, you must define two javascript helper functions in the same page:
-
exportCircuit(dump)
, whose first parameter is a string describing the circuit in the same format used for the circuit file. -
importCircuit()
, which must return a string describing the circuit in the same format used for the circuit file.
The definition of those functions is up to you (for instance, you may copy the string to/from a textarea).
The terms and conditions for the original code still apply. Check http://www.falstad.com/licensing.html before redistributing or modifying the code. You must always consult the original licensing information but, in case the link is unavailable, here is a copy of the original license (as of 2013-05-08):
You have permission to use these applets in a classroom setting or take
screenshots as long as the applets are unmodified. Modification or
redistribution for non-commercial purposes is allowed, as long as you
credit me (Paul Falstad) and provide a link to my page (the page you
found the applet(s) on, or http://www.falstad.com/mathphysics.html).
Contact me for any other uses. The source code for each applet is
generally available on that applet's web page, but some of the applets
use third-party source code that has restrictions.
THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
Rodrigo Hausen's changes are in the public domain (but it would be nice if you credited me alongside Paul if you use this version).