code: @Override
      public void start() {
          super.start();
          try {
              this.getSimulation().getScenarioPortrayal().setupPortrayals();
              Scenario3DPortrayal scenarioPortrayal = (Scenario3DPortrayal) this
                      .getSimulation().getScenarioPortrayal();
              HashMap<String, Display3D> displays = scenarioPortrayal
                      .getDisplays();
              for (Entry<String, Display3D> entry : displays.entrySet()) {
                  entry.getValue().reset();
                  entry.getValue().repaint();
              }
  
              ShanksSimulation sim = this.getSimulation();
              ScenarioPortrayal sp;
              sp = sim.getScenarioPortrayal();
              HashMap<String, HashMap<String, Portrayal>> portrayals = sp
                      .getPortrayals();
              for (Entry<String, HashMap<String, Portrayal>> displayEntry : portrayals
                      .entrySet()) {
                  Display3D display = displays.get(displayEntry.getKey());
                  display.detatchAll();
                  HashMap<String, Portrayal> displayPortrayals = displayEntry
                          .getValue();
                  for (Entry<String, Portrayal> portrayalEntry : displayPortrayals
                          .entrySet()) {
                      display.attach(
                              (FieldPortrayal3D) portrayalEntry.getValue(),
                              portrayalEntry.getKey());
                  }
              }
          } catch (DuplicatedPortrayalIDException e) {
              logger.severe(e.getMessage());
              e.printStackTrace();
          } catch (ScenarioNotFoundException e) {
              logger.severe(e.getMessage());
              e.printStackTrace();
          } catch (ShanksException e) {
              logger.severe(e.getMessage());
              e.printStackTrace();
          }
      }
docs: /*
  (non-Javadoc)
  
  @see sim.display.GUIState#start()