The Logic Lab

// February 26th, 2009 // Experiments, Neuro Productions, Websites

Yea! Finally a new Neuro Productions project: The Logic Lab

The Logic Lab is a node based application for simulating simple circuits of logic gates in the browser.

»  Visit the lab and have fun!
Suggestions for improvement are welcome.

logic lab, logic ports

28 Responses to “The Logic Lab”

  1. anthony says:

    This is beautiful. I would like to change the frequency of the audio output object using an input, as with the dial potentiometer. Thank you. Beautiful visually, form, and functional design.

  2. Frank Dust says:

    You are a monster … This is realy great stuff.
    Never seen before ..
    Execelent for school en student



  3. Kris says:

    Thanks for the comments.

    @anthony:I thought about that in the beginning of the project, and technically it would be possible (altrough it would rise some problems with the logic gates). But I chose to only work width zero and One values. because its more in line with the logic gates (by definition they work width 0 and 1 values). That’s why I put the ‘potentiometer’ in the sound component itself.
    But thanks for the suggestion :)

  4. Michael says:

    Hi Kris, This is great, is something like this also possible for modelling a Petri net?



  5. Kris says:

    Hi Michael,
    I don’t know much about Petri nets (had to do a wikipedia search). But it looks like its posible.

  6. Geert says:

    It would be nice if it would be possible to build reusable components.
    The component would have a set of input ports, the output the component provides and a couple of output ports.
    With this paradigm, a NAND is a component that combines an AND and a NOT, an XOR is a combination of NAND components, …. and a student would see how many cool things one can build with just or’s and’s and not’s …

    Other components one may build would for example be a base-10 counter with carry bit which gets set when a wrap around from 9->0 occurs. The component only has to have one input port, has an output display and has an output port. Of course, the component is an exercise for the reader, but then it’s easy to build something else … like for example a simple stopwatch.

    By combining smaller building blocks one can make more complex designs. If double clicking a component would “zoom in” on the content … then that would be truly great.

    Well – you asked for ideas ;-)

    This may turn out to be a wonderful teaching tool on logical/digital design.

    Great work,
    – Geert

  7. Nolan says:

    This is really great! Is there a way to get the source code for this? I am learning Flash/Flex and would like to study the code.


  8. Stephan says:


    We are at the moment developing in flex too, and we have an important deadline in which we have to have a logic function configuration tool. I have seen your tool and it would spare us some time if we could use some of your source code. Could you tell us what possibilities exists?

    Thank you,


  9. Jessica says:

    Just wondering, as you can save your creations, can you access them again?


  10. epi says:

    hey man, great project, but is it possible to make the area larger, where you can place those elements, as i ran out of space:D

  11. Daniel says:


    I just wanted to stop by and thank you for this awesome tool! It is great for tinkering around with logic gates and learning more about how they work. As a small suggestion, the ability to zoom in and out and pan around the work space would be great. At present, the work area is rather small and can get crowded fairly easily. Not only does being crowded make things a little harder to adjust, but it also limits the types of circuits that can be built. Anyway, that is just a suggestion. Great work!

    After saving a project, a dialog box comes up and provides a link to where it is saved. Just copy and paste that link into a text file. When you want to edit or view your project, open the file and copy the saved link into your web browser.

    Here are a couple of circuits I had fun designing:

    A 3-bit ripple carry adder (takes two, 3-bit numbers, adds them, and displays the result as a 4-bit number):

    A simple memory module that can store two 3-bit numbers. It takes a single, 3-bit number as input, with a switch that determines the module in which the number will be stored. A red button simulates a clock pulse. Press the button to store the number in the chosen module:

  12. SexyCanI says:

    Thank you so much for this but can we have a legend of the icons, some i dont know what they are. Please keep this updated need a square i can put I/O on left or right side not just opposite of the front.

  13. ALeX says:

    I really like your Logic Lab.

    Accoding to wikipedia the JK-FlipFlip should toggle the output when J and K is high, which don’t work like that:

    I would love to also have three/four input AND/OR gates. I “eumualted” them by two/three gates:

  14. W Todd says:

    Nice work! Related to ALeX’s comment, JK and D (which does not appear in your list) Flip-Flops have additional inputs like /SET /RESET and CLK. Normally the /SET or /RESET are used to initialize the output states and the clock is used to determine the next output state based upon the input condition(s). This tool would really be great for simulating synchronous state machines if these features were supported. Also, fixed input references of “1″ and “0″ would be helpful.

  15. Peter says:

    Excellent little playgorund for my IT students to learn about logic gates. Well Done! I just built a 3-bit adder…

  16. Nathan says:

    I love it! I think you should add a half adder and/or full adder and a level-triggered D-type flip-flop. Also, some of the components are not completly obvious. W Todd, the D flip flop your talking about is probably the one I said above so it will have a `clock` input (clk) and will sometimes have a clear (reset) input but likely won`t have a set input.

  17. Matt says:

    If the area was big enough, or by adding some additional elements,, could be worked through.

  18. Matt says:

    And your binary counter example needs a not in each lead to the display to make it count up, as opposed to down. Guess I’m an adder, not a subtracter.

  19. Abu says:

    Hi, i need to do catchup homework for my computer studies, so could you please tell me how to make a half adder and how they work.

  20. Robert says:

    The Logic Lab is a very nice logic simulation tool for beginners.
    There is one key point missing for maximum student learning.
    The standard logic symbol should be included in the The Logic Ports. That way as the student uses the Logic ports he/she will begin to associate the logic symbol with the gate type. So pick up the AND logic port and you would see the word AND and the symbol for a AND gate. Double your learning in the process!
    Thanks for the great tool and I love your WEB site.
    Robert G. Johnston

  21. Tim says:

    It’s a nice game but I think a few things should be implemented:

    The grid should be a lot (infinitely if possible) larger.
    You should be able to rotate and flip components.
    All components should be smaller.
    A keyboard input.
    A constant power input.

    Thank you for listening,

  22. Daniel says:

    Hello first of all congratulations for this great tool.!
    Wanted to know how it is to press two buttons at once.?

    Thank you.
    Daniel – Argentina

  23. Daniel W. says:

    I am doing a science project involving logic, and this is a very powerful, helpful tool.
    Congratulations on having such great content!

  24. Awesome website, love the comments section, theres so many good projects

  25. Thanks a lot for the great work, this is so helpfull, i love it :)

  26. Maciej says:

    It would be great if you could add an integrated full adder :)

  27. Cody says:

    Nice! Few suggestions:
    1. Selection tool so that I can move multiple components at once.
    2. Labeling tools!
    a. Label individual components with short names like “A1″, “A2″, “A3″.
    b. Labeling group constructs! A simple dotted square would be great.
    3. Zoom in / Zoom out.
    4. Copy and paste within the sandbox. Maybe hold the CTRL key and when you move a component it creates a copy of that component instead (or group/selection copy!).
    5. A second digital output with opposite endianness! (Seven-segment display).
    6. A tooltip that appears when you hover over a component that explains the extreme basics (have an option to turn it off too as that could get annoying).

    To “Tim”: For a constant power input just use two “NOT” gates!

  28. [...] a sandbox for Boolean Algebra: The Logic Lab Share this:TwitterFacebookGoogleLike this:Like [...]