Git Product home page Git Product logo

whelmer's Introduction

WHELMER

whelmer is like clouded plain except round

just circles, .. rings... of different colors, arising from the center
moving at different speeds
fading away when they get too far from the center, when they get near the edge
(SHOULD WE HAVE 2-WAY RING MOVEMENT?)

interacting via overlap
  which manifests as color blend

the field is black
so we can work with a square. because the edges will be hidden

and the whole field of pixel-squares is then interpreted as sound
or maybe we'll interpret the circles that way
I'm not sure.

1) make the field. the black square
2) make a fuzzy circle
3) make it move, arise ... fade in and then fade out
  maybe different rates of fade

ring differences
  color
  thickness
  speed
  rate of fade, outer and inner edge
  part of a sequence.
    what we'll have is a list full of rings
    each ring has a birthday
    we increment through time at 60 ticks per second
    when a we hit a ring's birthday it manifests in the center
      and at every subsequent tick it moves outward, 
      eventually disappearing from view and being removed from the list
    rings who's birthday has not been hit just hang out in the list waiting to be born
      thus we can create patterns, sequences or whatever. 
      Probably in reverse, starting at NOW-1 and adding a new ring at every 100 ticks into the past for 100 ticks or whatever.
      
our rings are solid color with faded edges, right?
so basically a color and an alpha

a RING is a drawing function 
    d : distance from center
    t : time
    define value and intensity at each pixel in range
    
-----------------------
+++++++++++++++++++++++

interface Whelmer{
  double getMaxRadius(); //the visual and logical edge of this system. rings that pass beyond it tend to disappear
  void incrementTime();
  List<Ring> getRings();
  int getTime();
  Cell[][] getState(); //a 2d array of cells. 
    //each cell of the system holds the presence of the background and any Rings that touch that cell.
    // at a cell, the background only manifests to the degree 1.0-sum_of_all_ring_presences. 
    //So if there are enough rings present then the background is completely hidden.
} 
  
interface Cell{
  int getX();
  int getY();
  List<RingPresence> getPresences();
}

interface Ring{
  Whelmer getWhelmer(); //the whelmer of which this ring is a component
  double getFrontEdge(); //a radius
  double getBackEdge(); //a radius
  double getFrontFade(); //distance over which the edge fades
  double getBackFade();
  double getFrontSpeed(); //rate of change of front radius per tick. Positive speed means movement outward from center. Can be negative.
  double getBackSpeed();
  int getBirthday(); //the value of whelmer.getTime() when this ring was created.
  boolean killMe(); //at some point a ring gets destroyed. 
    //It passes outside the geometry of the whelmer or something. 
    //At that point we might signal that we are ready to be discarded from the whelmer system.
  double getValue(); // an abstract value in range 0<=n<1 distinguishing this ring. 
    //It can be translated into a color or sound.  
    //It can be blended with other ring values to create a group value   
  
}

interface imageRenderer{

  BufferedImage getImage(Whelmer whelmer);

}
    
    
  
  
       



 

whelmer's People

Contributors

johnalexandergreene avatar

Watchers

 avatar  avatar  avatar

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.