Quantcast
Channel: Library Questions - Processing 2.x and 3.x Forum
Viewing all 2896 articles
Browse latest View live

Setting up a control window using ControlP5

$
0
0

I'm wondering why a ControlP5 slider always ends up on my main canvas when I need it to go on the special control window (which I never get to see).

Has anyone had this issue before? I'm wanting to have a control window setup which would have sliders to control graphics on the main canvas, but in a separate window.

Here's my code - thanks for any ideas people. (Still can't get this code to output right in these forums - ctrl & O not working again for some reason).

`import controlP5.*;

//Declare Controls ControlP5 controlP5; ControlWindow myControlWindow; //initialize control window Controller slider; //initialize slider

//Setup

void setup() { //Initalize Main Canvas size(1480, 360);

//Initialize ControlP5 and Control Window controlP5 = new ControlP5(this);

myControlWindow = controlP5.addControlWindow("Control Window", 200, 200, 480, 360);

//Initialize Controls slider = controlP5.addSlider("X", 0, 30, 15, 88, 70, 320, 24);

}

//Draw

void draw() {

}`


create a line using an audio sample

$
0
0

I'm trying to create a lineal drawing using the sound information from an audio sample or the computer internal mic. I did this script but I'm just getting a straight line. Any ideas?

thanks!

import ddf.minim.*;

Minim minim;
AudioInput in;

float x;
float y;
float px;
float py;
float vel;
float dir;

void setup(){
  size(400,400);
  stroke(0);
  background(255);
  smooth();
  frameRate(30);

  x=y=px=py=200;


  vel = random(5);
  dir = random(360);

  minim = new Minim(this);

  in = minim.getLineIn();
}

void draw(){
  px = x;
  py = y;

  x += cos(radians(dir)) * vel;
  y += sin(radians(dir)) * vel;

  stroke(0);
  line(px,py,x,y);

  float value = 0;

  for(int i = 0; i < in.bufferSize() - 1; i++) {
      value += in.mix.get(i);
  }
  value /= in.bufferSize();
  dir += random(-30, 30) * value ;
}

void stop() {
  minim.stop();
  super.stop();
}

textbox (G4P GUI BUILDER)

$
0
0

hello guys.

I am trying to save the value of textbox in a variable, I created textbox with the help of "G4P GUI BUILDER", so how can I store the typed value in variable.

/** =========================================================
 * ====                   WARNING                        ===
 * =========================================================
 * The code in this tab has been generated from the GUI form
 * designer and care should be taken when editing this file.
 * Only add/edit code inside the event handlers i.e. only
 * use lines between the matching comment tags. e.g.

 void myBtnEvents(GButton button) { //_CODE_:button1:12356:
     // It is safe to enter your event code here
 } //_CODE_:button1:12356:

 * Do not rename this tab!
 * =========================================================
 */

public void textfield1_change1(GTextField source, GEvent event) { //_CODE_:txtName:280460:
  println("txtName - GTextField >> GEvent." + event + " @ " + millis());
} //_CODE_:txtName:280460:

// Create all the GUI controls.
// autogenerated do not edit
public void createGUI(){
  G4P.messagesEnabled(false);
  G4P.setGlobalColorScheme(GCScheme.BLUE_SCHEME);
  G4P.setCursor(ARROW);
  surface.setTitle("Sketch Window");
  txtName = new GTextField(this, 148, 145, 160, 30, G4P.SCROLLBARS_NONE);
  txtName.setOpaque(true);
  txtName.addEventHandler(this, "textfield1_change1");
}

// Variable declarations
// autogenerated do not edit
GTextField txtName;

thanks

control of function running with the Checkbox.

$
0
0

Hello friends, I am trying to control the code to display with checkbox, I have two function

void render() and display ()

which i call in event control and with if else statement I want to display this. but it is not show. and when i put it event handler function in run() function its give error that variables are not declared. could you please point our my mistake.

I created checkbox with G4P GUI Builder.

my code is here.

` // Create all the GUI controls. // autogenerated do not edit public void createGUI(){ G4P.messagesEnabled(false); G4P.setGlobalColorScheme(GCScheme.BLUE_SCHEME); G4P.setCursor(ARROW); surface.setTitle("Sketch Window"); chkBox = new GCheckbox(this, 4, 8, 123, 31); chkBox.setTextAlign(GAlign.LEFT, GAlign.MIDDLE); chkBox.setText("Display Nuclus ID"); chkBox.setTextBold(); chkBox.setOpaque(false); chkBox.addEventHandler(this, "chkNucleus"); }

// Variable declarations // autogenerated do not edit GCheckbox chkBox; //nucleus is the centre of the niche

class Nucleus {

int id; PVector pos; PVector nucleus = new PVector(); boolean frozen; /............................................................................................./ Nucleus(int identity, boolean hunger, PVector loc) { id = identity;

    pos = loc.get();

} /............................................................................................./

void run() { updatePos(); //render(); // display(); //chkNucleus(GCheckbox source, GEvent event);
}

void updatePos() { // println(id, "current pos", pos); nucleus = new PVector(); for (int i=0; i<space.length; i++) { if (space[i].ref == id) { for (int j=0; j<space[i].nodes.length; j++) { nucleus.add(space[i].nodes[j].pos);

    }
  }
}
nucleus.div(numNodes);

// println("current nucleus", nucleus); // float d = pos.dist(nucleus); // if (d == 0) { // frozen = true; // println("FROZEN .........!!!!!!!!!!!!!!!"); // } pos = nucleus; // println(id, "new pos", pos); }

public void chkNucleus(GCheckbox source, GEvent event) { //CODE:chkBox:929344: //println("chkBox - GCheckbox >> GEvent." + event + " @ " + millis()); //println(event);

if(chkBox.isSelected()){ println("ok"); display(); } else{ println("no"); render();

} }

void render() { stroke(200, 70); // stroke(250, 50); noFill(); ellipse(pos.x, pos.y, 8, 8); stroke(10); point(pos.x, pos.y); }

void display(){ // to display number. stroke(200, 70); // stroke(250, 50); noFill(); ellipse(pos.x, pos.y, 8, 8); stroke(10); point(pos.x, pos.y); fill(200, 155, 0); textAlign(CENTER, CENTER);

text(id, pos.x, pos.y);
}

}

`

Many thanks

How to control checkbox with multiple arrys

$
0
0

Hello guys.

I am trying to get input value from 3checkbox in one array, upto 5 or more array here is my code. I entre value in the textbox to genertate the checkbox arrays.

// Need G4P library import g4p_controls.*;

public void setup(){ size(480, 320, JAVA2D); createGUI(); customGUI(); // Place your setup code here

}

public void draw(){ background(230);

}

// Use this method to add additional statements // to customise the GUI controls public void customGUI(){

}

public void textfield1_change1(GTextField source, GEvent event) { //CODE:txtno:852228: // println("txtno - GTextField >> GEvent." + event + " @ " + millis());

// println(txtno.getText()); } //CODE:txtno:852228:

public void button1_click1(GButton source, GEvent event) { //CODE:btnSubmit:452090: //println("btnSubmit - GButton >> GEvent." + event + " @ " + millis()); //Integer.parseInt(

String actant = txtno.getText(); if(actant.isEmpty()){ println("increase the number of acctant"); } else{ println(txtno.getText()); int i = Integer.parseInt(txtno.getText()); for(int x=1; x<=i; x++){ //Actant number to display

G4P.messagesEnabled(false);

G4P.setGlobalColorScheme(GCScheme.BLUE_SCHEME); G4P.setCursor(ARROW); //surface.setTitle("Actant Input");

for(int j=1; j<=3; j++){ int a = 100 * j; int b= 20 * x;

  //for creating Label for actant.
  if(j==1){
 lblTitle = new GLabel(this, -95+a, 30 + b, 85, 20);
  lblTitle.setText("Actant No: "+ x + ".");
  lblTitle.setOpaque(false);
  }
 //For Creating checkbox
  chkA1 = new GCheckbox(this, 5+a, 30 + b, 85, 20);
  chkA1.setTextAlign(GAlign.LEFT, GAlign.MIDDLE);
if(j==1){
chkA1.setText("Heat");
}
else if(j==2){
chkA1.setText("Noice");
}
else{
chkA1.setText("Smell");
}

chkA1.setOpaque(false);
chkA1.addEventHandler(this, "chka1");

}
}

}

} //CODE:btnSubmit:452090:

// Create all the GUI controls. // autogenerated do not edit public void createGUI(){ G4P.messagesEnabled(false); G4P.setGlobalColorScheme(GCScheme.BLUE_SCHEME); G4P.setCursor(ARROW); surface.setTitle("Sketch Window"); lblActant = new GLabel(this, 5, 5, 95, 22); lblActant.setText("Actant Number"); lblActant.setTextBold(); lblActant.setOpaque(false); txtno = new GTextField(this, 104, 4, 43, 30, G4P.SCROLLBARS_NONE); txtno.setOpaque(true); txtno.addEventHandler(this, "textfield1_change1"); btnSubmit = new GButton(this, 158, 8, 80, 30); btnSubmit.setText("Submit"); btnSubmit.addEventHandler(this, "button1_click1");

}

// Variable declarations // autogenerated do not edit GLabel lblActant; GTextField txtno; GButton btnSubmit; GLabel lblTitle;

//Creating CheckBox GCheckbox chkA1;

// Create all the GUI controls. // autogenerated do not edit public void chkBox(){ //G4P.messagesEnabled(false); //G4P.setGlobalColorScheme(GCScheme.BLUE_SCHEME); //G4P.setCursor(ARROW); //surface.setTitle("Sketch Window"); //for(int j=1; j<=3; j++){ // int a = 100 * j; // chkA1 = new GCheckbox(this, 5, 40, 85, 20);

//chkA1.setTextAlign(GAlign.LEFT, GAlign.MIDDLE); //chkA1.setText("1"); //chkA1.setOpaque(false); //chkA1.addEventHandler(this, "chka1"); } //}'

How to handle dynamic checkbox array for I/O

$
0
0

I am trying to get input value from 3checkbox in one array, upto 5 or more array here is my code. I entre value in the textbox to genertate the checkbox arrays.

// Need G4P library import g4p_controls.*;

public void setup(){ size(480, 320, JAVA2D); createGUI(); customGUI(); // Place your setup code here

}

public void draw(){ background(230);

}

// Use this method to add additional statements // to customise the GUI controls public void customGUI(){

}

public void textfield1_change1(GTextField source, GEvent event) { //CODE:txtno:852228: // println("txtno - GTextField >> GEvent." + event + " @ " + millis());

// println(txtno.getText()); } //CODE:txtno:852228:

public void button1_click1(GButton source, GEvent event) { //CODE:btnSubmit:452090: //println("btnSubmit - GButton >> GEvent." + event + " @ " + millis()); //Integer.parseInt(

String actant = txtno.getText(); if(actant.isEmpty()){ println("increase the number of acctant"); } else{ println(txtno.getText()); int i = Integer.parseInt(txtno.getText()); for(int x=1; x<=i; x++){ //Actant number to display

G4P.messagesEnabled(false);
G4P.setGlobalColorScheme(GCScheme.BLUE_SCHEME); G4P.setCursor(ARROW); //surface.setTitle("Actant Input");

for(int j=1; j<=3; j++){ int a = 100 * j; int b= 20 * x;

//for creating Label for actant.
  if(j==1){
 lblTitle = new GLabel(this, -95+a, 30 + b, 85, 20);
  lblTitle.setText("Actant No: "+ x + ".");
  lblTitle.setOpaque(false);
  }
 //For Creating checkbox
  chkA1 = new GCheckbox(this, 5+a, 30 + b, 85, 20);
  chkA1.setTextAlign(GAlign.LEFT, GAlign.MIDDLE);
if(j==1){
chkA1.setText("Heat");
}
else if(j==2){
chkA1.setText("Noice");
}
else{
chkA1.setText("Smell");
}

chkA1.setOpaque(false);
chkA1.addEventHandler(this, "chka1");

}
}

}

} //CODE:btnSubmit:452090:

// Create all the GUI controls. // autogenerated do not edit public void createGUI(){ G4P.messagesEnabled(false); G4P.setGlobalColorScheme(GCScheme.BLUE_SCHEME); G4P.setCursor(ARROW); surface.setTitle("Sketch Window"); lblActant = new GLabel(this, 5, 5, 95, 22); lblActant.setText("Actant Number"); lblActant.setTextBold(); lblActant.setOpaque(false); txtno = new GTextField(this, 104, 4, 43, 30, G4P.SCROLLBARS_NONE); txtno.setOpaque(true); txtno.addEventHandler(this, "textfield1_change1"); btnSubmit = new GButton(this, 158, 8, 80, 30); btnSubmit.setText("Submit"); btnSubmit.addEventHandler(this, "button1_click1");

}

// Variable declarations // autogenerated do not edit GLabel lblActant; GTextField txtno; GButton btnSubmit; GLabel lblTitle;

//Creating CheckBox GCheckbox chkA1;

// Create all the GUI controls. // autogenerated do not edit public void chkBox(){ //G4P.messagesEnabled(false); //G4P.setGlobalColorScheme(GCScheme.BLUE_SCHEME); //G4P.setCursor(ARROW); //surface.setTitle("Sketch Window"); //for(int j=1; j<=3; j++){ // int a = 100 * j; // chkA1 = new GCheckbox(this, 5, 40, 85, 20);

//chkA1.setTextAlign(GAlign.LEFT, GAlign.MIDDLE); //chkA1.setText("1"); //chkA1.setOpaque(false); //chkA1.addEventHandler(this, "chka1"); } //}

thank you in advance.

Using ControlP5 in externel class

$
0
0

Hey, I use scrollablelist in extern class.

` public class SerialConnect {

 PApplet pa;

 private ControlP5 cp5;

 Controller<ScrollableList> sbCOM;

//--------------------- End of Initialisatins and Deklarations --

SerialConnect(PApplet _pa) {
    pa = _pa;
    cp5 = new ControlP5(pa);

    String[] portNames = SerialPortList.getPortNames();
    sbCOM = cp5.addScrollableList("ComList");
    sbCOM.setCaptionLabel("COM Ports").setPosition(100, 0).
                                             setSize(80, 120).setBarHeight(BARHEIGHT).setItemHeight(20).
                                             addItems(portNames);

}
//------------------------- end of constructor ------------

public void ComList(int value){

    pa.println("Selectet is :"+ value);
    isCOMport = true;
        isConnect = InitSerial(selectedPort, current_BaudRate);

}//--------------------------- End of ComList() --

public void ControlEvent(ControlEvent theEvent) {

if (theEvent.isController()) {
        System.out.println("Something is happening.");
        if (theEvent.getName().matches("ComList")) {
  }
}
}//--------------------------- End of ControlEvent() --

` But i get no event. What am I doing wrong? Gruß Willi

PeasyCam - Yaw and Roll only

$
0
0

Hi there,

As the title suggests I'm trying to only allow yaw and roll rotations, is that possible?

I'm aware of these functions but it only seems to be one or the other!?

// By default, the camera is in "free rotation" mode, but you can
// constrain it to any axis, around the look-at point:
camera.setYawRotationMode();   // like spinning a globe
camera.setPitchRotationMode(); // like a somersault
camera.setRollRotationMode();  // like a radio knob
camera.setSuppressRollRotationMode();  // Permit pitch/yaw only.

// Then you can set it back to its default mode:
camera.setFreeRotationMode();

Thanks, Charles


Sound Library 1.3.2 on Windows 8.1

$
0
0

I made the HUGE mistake of developing on my mac machine and testing only now on the target machine, a windows 8.1 computer. My code doesn't work and it's clearly an error of the Sound Library (I am trying to run the examples and they crash too). "Target VM failed to initialised" if I try to run any of the example sketches.

Now I am confused because in the GitHub of the library it's written that it's only MacOSX and Linux, but then I find people reporting other type of errors. Plus, on the release note of the 1.3.2 version it's clearly state they fixed some windows related problem.

What's the status of this library? Is it supposed to work on Processing 64-bit, and on Windows 8.1? If not, is there any type of workaround? I am reading that maybe downgrading it to 1.2.1 could work but I wasn't able to install it. Thanks for the support

shapes3d rotations to maya

$
0
0

im trying to get rotation angles from shapes3d to use them in maya python scripting. as i know, maya uses euler angles and shapes3d can give me them in some order (e.g. RotOrder: ZYZ).

i can change/define the RotationOrder at MEulerRotation, but they are different (e.g. kZYX) i tried different ways, but the rotations always look wrong.

any ideas?

thanks.

Interactive video with mouse function?

$
0
0

Looking to find a function code in processing that will not only loop a series of short videos, but also be affected when a mouse scrolls over the media from one side to the other horizontally. Speed of the mouse movement then translates to the speed of the video. I'm trying to find a way to do this with a distance sensor but I think keeping a mouse will be more simple. Would really appreciate any help!

ControlP5 Matrix – trigger for blanks as well??

$
0
0

Anyone familiar with a way to get some sort of trigger from the ControlP5 Matrix for when a position hasn't been set?? It's working just fine to let me know anytime I have a section activated, but I'm building a basic A/B image animation flipping tool– and beyond using it to flip between the two images, would love to have it show black if neither A or B image has been activated. I simply can't find any documentation for even finding out what position the runner is on at any given moment- since it really only sends back signals to its own callback or the main controlEvent– if something happened/triggered. This makes perfect sense... but isn't so helpful right now... Maybe @sojamo you have some advice on how to extend it so that I can pass along another variable within the following code to know where the runner/cnt is and check if it's blank at that moment?? Or simply have the following 'myMatrix' function trigger on every cnt/frame of the Matrix, giving true/falses? I can getCells() to know which ones are blank.. but can't react in realtime when the matrix is playing.

void myMatrix(int theX, int theY) { println("got it: "+theX+", "+theY); // whatabout where it wasn't active? }

Here is what I mean by having one matrix frame inactive and wanting to trigger something for it being blank:

Passing variable values on as a means of storing for later use

$
0
0

I'm having an issue with passing a variable off to a second variable so that I can reset the slider/value of the first variable, print a number of frames, and then reload the slider with the original value. It seems the variables are so synced that it gets updated early, rendering the whole task useless. rl1 and Darks1Value are both global variables.

rl1 = Darks1Value; //Darks1Value is a slider that will be set to 0, then repopulated with its original value.
cp5.getController("rl1").setValue(Darks1Value);  //rl1 is the temporary variable/slider to store the Darks1Value slider value
cp5.getController("Darks1Value").setValue(0);  //resetting the slider to 0
println("Darks1Value is:"+rl1);  //Darks1Value returns 0 - as it should
println("rl1 is:"+rl1);`  //rl1 should return the original Darks1Value (eg. 100), yet returns 0

Any ideas on this one please? Many thanks.

PDF export missing objects in frame

$
0
0

deleted question - just needed to place startFrame and endFrame in different places in the code. Moderators - please feel free to delete as I can't find how to do this. Thank you.

PShapes in P2D

$
0
0

Hi,

My sketch is setup to run under P2D: size(1920,1080,P2D);

I'm using beginRecord(PDF, etc) & endRecord(); to output a PDF from 1 single frame.

If I draw shapes dynamically they appear in the PDF no problem using beginShape(), vertex(), endShape().

However if I create a PShape object and create a shape that way (which is more efficient) then that shape does not appear in the PDF but does appear on screen.

I'm guessing this is something to do with the way the P2D OPENGL works, but just want to see if it's intended behaviour or a "bug".

Any insight to help me understand this better would be great.

(BTW, I realise there is also a PDF mode, but ideally I'd like a screen preview too?)

Thank

Mike


cannot find a class or type name...

$
0
0

I think this is caused by different versions of processing. It says "cannot find a class or type named "Sensor"". Please help!

import processing.serial.*;
import oscP5.*;
import netP5.*;

final static int OSC_IN_PORT = 8444;

Serial mSerial;
OscP5 mOscP5;

Sensor ss[] = new Sensor[6];
long lastOscMillis;

void setup() {
  size(600, 700, P2D);
  for (int i=0; i<ss.length; ++i) {
    ss[i] = new Sensor(new PVector(20, 10+i*110), new PVector(560, 100), "sensor"+i);
  }
  lastOscMillis = millis();
  mOscP5 = new OscP5(this, OSC_IN_PORT);
  mSerial = new Serial(this, Serial.list()[0], 57600);
}

void draw() {
  background(200);

  // read input
  while (mSerial.available () > 2) {
    if (mSerial.read() == 0xAB) {
      int upperByte = mSerial.read();
      int lowerByte = mSerial.read();

      short pinNumber = (short)((upperByte>>0x04)&0x07);
      short value = (short)(((upperByte<<8)&0x0F00) | (lowerByte&0xFF));
      ss[pinNumber].addValue(value);
    }
  }

  // write osc
  if (millis()-lastOscMillis > 100) {
    for (Sensor s:ss) {
      s.sendOsc();
    }
  }

  // draw
  for (Sensor s:ss) {
    s.draw();
  }
}

Get weather info?

$
0
0

Hi. I have a way to get weather info, but it does not work well. Do you have a way to get weather info? Also, the library YahooWeather does not work, so please do not suggest it. Thanks in advance!

how to introduce speech recognition into game.

$
0
0

Hi,

I am currently working on a university final year project, where I am taking an existing piece of work and adding a useful element to it. I have started building the classic brick breaker game but I am not sure how can i use the speech-to-text library to introduce speech commands into the game, such as 'Run' to start the game and move the paddle by saying 'L' or 'R' (Left and Right).. I would like to configure the commands to the amount of pixels the paddle moves across..such as have default commands set as '30 pixels' and further commands such as 'L1' and 'R2' could be used to move a further distance '40pixels' maybe.

Thank you.

Current Code:

        float ballX;        // x coordinate of the ball
        float ballY;        // y  coordinate of the ball
        float ballW;        // width of the ball
        float ballH;        // height of the ball
        float moveBallX;    // move the ball from left to right randomly
        float moveBallY;    // move the ball from top to bottom randomly
        float paddleX;      // x coordinate of the paddle
        float paddleY;      // y coordinate of the paddle
        float paddleW;      // width of the paddle
        float paddleH;      // height of the paddle
        float movePaddleX;  // move the paddle left or right by 30 pixels



        void setup () {

          size (350, 400);

          // Ball parameters; initial x, y coordinates, and width, height of the ball.
          ballX = 20;
          ballY = 20;
          ballW = 15;
          ballH = 15;

          // Move the ball's coordinate positions randomly in the game.
          moveBallX = random(1, 4);
          moveBallY = random(1, 4);

          // Paddle parameters; initial x, y coordinates, and width, height of the paddle.
          paddleX = width/2;
          paddleY = height - 20;
          paddleW = 50;
          paddleH = 10;

          // Move the Paddle's coordinate position
          movePaddleX = 30;
        }

        void draw () {
          background (0);
          ellipse (ballX, ballY, ballW, ballH); // ball
          noStroke();
          rect (paddleX, paddleY, paddleW, paddleH); // paddle

          // Add the moving motion to the ball.
          ballX = ballX + moveBallX;    //the current x position of the ball is moved by the variable moveBallX.
          ballY = ballY + moveBallY;    ///the current y position of the ball is moved by the variable moveBallY.


          //IF statements to control the ball's x coordinate, rebounce the ball when it hits the right or left edge.

          if (ballX > width) {
            moveBallX = -moveBallX; // The values become the opposite, and allow a rebounce.
          }

          if (ballX < 0) {

            moveBallX = -moveBallX;  // The values become opposite, and allow a rebounce.
          }

          //IF statements to control the ball's y, rebounce the ball when it hits the top or bottom edge.

          if (ballY > paddleY)       // 'paddleY' is used instead of 'height'. to show a bounce on the paddle.
          {
            moveBallY = -moveBallY; // The values become the opposite, and allow a rebounce.
          }

          if (ballY < 0) {

            moveBallY = -moveBallY; // The values become the opposite, and allow a rebounce.
          }

        }

        void keyPressed() {
          if (key == CODED) {
            if (keyCode == LEFT) {         //when the LEFT key is pressed, the paddle is moved to the left by 30 pixels.

              paddleX = paddleX - movePaddleX;
            } else if (keyCode == RIGHT) {  //when the RIGHT key is pressed, the paddle is moved to the right by 30 pixels.

              paddleX = paddleX + movePaddleX;
            }
          }
        }


        //Help acquired from the following sources:
        //https://processing.org/examples/
        //http://www.openprocessing.org/sketch/134612
        //http://drdoane.com/thinking-through-a-basic-pong-game-in-processing/

How can i use an image inside of an simple point marker

$
0
0

Hi

Im really new in programming and im trying to use an image.png like a parameter of a draw() method of simplePointMarker (PGraphics pg, float x, float y) and i cant figure how i suppose to do it

i suppose there is a way to cast an image to a pgraphics

thanks for helping

Using processing in HTML

$
0
0

I want to read EEG data from edf or csv file and show the EEG signal in a web application, any help?

Viewing all 2896 articles
Browse latest View live