Coder Social home page Coder Social logo

Synaptic Wall Project

Instructions

  • Press 1 to switch to Creation mode. Click to create a soma. Click and drag existing somas to change their location. Click on the outer ring around a Soma to change it's threshold level.
  • Press 2 to switch to Deletion mode. Click to delete (not implemented)
  • Press 3 to switch to Interaction mode. Click and drag on the sliders to change properties. Click on empty areas to create selection boxes. When at least one object is selected, the control panel that can control all corresponding elements in the selection
  • Press 4 to switch to Handwriting mode. Click and drag to draw. Draw a rough circle to create a circle.
  • Press m to show a zoom lense, move the mouse around to move the focus of the lense
  • Press p to pause rendering
  • Press o to resume rendering
  • Press c to clear the screen

Design

Enviroment

This file sets up the environment and delegates all the events to the global Synaptic_Wall object and sets up the Grid used to place objects and define paths

SynapticWall.pde/Applications/XAMPP/xamppfiles/htdocs/github/SynapticWall/data/Readme.md

The controller for all inputs such as mouse interactions and keypress events. It handles state transitions and keeps track of what current mode (creation, deletion, interaction) it's in and determines the result of each input depending on context. It's also responsible for sending interaction events down to the ObjectCollection, the Grid, the ControlPanel, as well as other temporary objects being created.

An utility object that keeps the state, renders, and provide information about the selection rectangle

Geometric Grid used for positioning objects in the world with constraints in order to have geometric appeareances and properties

All constants used for rendering or calculations are defined within this file. It's then made available to all objects through inheritance. Some constants can be recalculated based on a scale constant


Objects

Abstract class that extends Constants that keeps track for basic information such as location, color, creation time, and flags such as Visible and Movable

Abstract class that extends Drawable that defines the methods used for handling events and interactions with default implementations

Abstract Class that extends Interactive that provides methods for adjusting locations of objects

Abstract Class that extends Shape that contains default behavior for shapes that have controls

Abstract Class that extends ControllableShape that outlines how Shapes interact with Paths and fire signal

Class that extends Cell that contains Soma specific behavior and rendering, such as the decay of the Soma's potential and how Action Potentials are fired

Class that extends Cell that contains Initiator specific behavior and rendering, such as how Post Synaptic Potentials are generated and the parameters that control the firing behavior of the cell

Class that extends ControllableShape that specifies how a Synapse updates its appearance and state based on its firing timer

Abstract Class that extends Interactive that details how Paths (Axons and Dendrites) process signals, junctions, and events

Class that extends Path that contains Axon specific behavior logic and rendering code

Class that extends Path that contains Dendrite specific behavior logic and rendering code

A class that contains methods for adding or removing items from the collection, event handling, selection, and rendering

The collection that keeps track of all the primary objects (Soma, Initiator, Dendrite, Axon, Synapse) in Synaptic Wall


Controls

Abstract Class that extends Interactive that contains fields required for Control objects

Interface that defines how objects can interact with Controllable objects

Slider UI element that maps a value within a range

A simple rectangular Slider that maps values along the x axis

A circular Slider that maps values to radian angles

A CircularSlider that allows only integer values

A CircularSlider that allows a range of values instead of a single particular value on the slider

A CircularSlider that's used to represent a Cell's firing potential


Control Panel

A object that encapsulates the objects in the Control Panel on the right side of the app and manages its behavior in response to control adjustments and interactions

A Soma SubClass that's used to display special information in the Control Panel

A Synapse SubClass that's used to display special information in the Control Panel


Utilities

A timer object that can fire an event at a particular point in the future

A collection of utility functions that are used throughout the code base to do computation

Processing plugin functions that provide functions to draw shapes such as arcs and rings


synapticwall's Projects

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.