Spatial Disappears after moving x. Still in Cam View

Button disappears when I try to center button. happens when x > 250. I made a stripped down basic ver but still can’t pint point how/why this happens.

Main Game:
package mygame;

import com.jme3.app.SimpleApplication;
import com.jme3.input.MouseInput;
import com.jme3.input.controls.MouseButtonTrigger;
import com.jme3.system.AppSettings;
import mygame.states.GameStartState;

public class Main extends SimpleApplication {

    /* entry screen to start */
    private GameStartState gameStart;
    
    public static void main(String[] args) {
        Main app = new Main();
        
        /* set resolution */
        AppSettings settings = new AppSettings(true);
        settings.setResolution(1600,800);
        app.setSettings(settings);
        
        /* remove settings screen*/
        app.setShowSettings(false);
        
        /* kick off*/
        app.start();
    }

    @Override
    public void simpleInitApp() {
        /* add test button mappings */
        inputManager.addMapping("GoLeft"
                , new MouseButtonTrigger(MouseInput.BUTTON_LEFT));
        inputManager.addMapping("GoRight"
                , new MouseButtonTrigger(MouseInput.BUTTON_RIGHT));
        
        /* adjust cam for 2D */
        flyCam.setEnabled(false);
        cam.setParallelProjection(true);
        /* -250 so that the stats show off gamescreen */
        cam.setFrustum(1f, 100f, -250, settings.getWidth(), settings.getHeight(), -250);
        cam.update();
        
        /* create states */
        gameStart = new GameStartState();

        stateManager.attach(this.gameStart);
    }
}

GameStartState:
package mygame.states;

import com.jme3.app.state.AbstractAppState;
import com.jme3.app.Application;
import com.jme3.app.SimpleApplication;
import com.jme3.app.state.AbstractAppState;
import com.jme3.app.state.AppStateManager;
import com.jme3.asset.AssetManager;
import com.jme3.input.InputManager;
import com.jme3.input.controls.ActionListener;
import com.jme3.material.Material;
import com.jme3.math.ColorRGBA;
import com.jme3.math.Vector3f;
import com.jme3.scene.Geometry;
import com.jme3.scene.Node;
import com.jme3.scene.shape.Quad;

public class GameStartState extends AbstractAppState {
    
    private Node gameStartNode = new Node("GameStart");
    private Geometry background;
    private Geometry button;

    private GameStartListener inputListener;

    /* adopt common objects from main App */
    private AssetManager assetManager;
    private InputManager inputManager;
    private Node rootNode;

    @Override
    public void initialize(AppStateManager stateManager, Application app) {
        super.initialize(stateManager, app);

        /* get common objects from main App */
        assetManager = app.getAssetManager();
        inputManager = app.getInputManager();
        rootNode = ((SimpleApplication)app).getRootNode();

        /* attach handlers */
        inputListener = new GameStartListener();
        inputManager.addListener(inputListener, "GoLeft");
        inputManager.addListener(inputListener, "GoRight");

        /* create spatials */
        createBackground();
        createButton();
        gameStartNode.attachChild(background);
        gameStartNode.attachChild(button);

        /* attach to root */
        rootNode.attachChild(gameStartNode);
    }

    private void createBackground() {
        background = new Geometry("background"
                , new Quad(1600, 800));

        Material bgMat = new Material(assetManager, "Common/MatDefs/Misc/Unshaded.j3md");
        bgMat.setColor("Color", ColorRGBA.White);

        background.setMaterial(bgMat);
    }

    private void createButton() {
        button = new Geometry("startbutton"
                , new Quad(400, 128));

        Material btnMat = new Material(assetManager, "Common/MatDefs/Misc/Unshaded.j3md");
        btnMat.setColor("Color", ColorRGBA.Blue);
        
        button.setMaterial(btnMat);

        /* center button to background 
         * result is 600
         */
        float btnX = (1600 - 400) / 2;
        
        /* set it too 200 to test
         * spatial disappears after 250
         */
        button.setLocalTranslation(200, 200, 2);
    }

    private class GameStartListener implements ActionListener {

        /* get button location adjust x and move button */
        public void onAction(String name, boolean keyPressed, float tpf) {
            if (name.equals("GoLeft") && !keyPressed) {
               
                Vector3f loc = button.getLocalTranslation();
                float nX = loc.x - 10;
                System.out.println("Moving left " + nX);
  
                button.setLocalTranslation(nX, loc.y, loc.z);
            }
            
            if (name.equals("GoRight") && !keyPressed) {
                
                Vector3f loc = button.getLocalTranslation();
                float nX = loc.x + 10;
                System.out.println("Moving right " + nX);
   
                button.setLocalTranslation(nX, loc.y, loc.z);
 
            }
        }
    }
}

Anything feedback would be appreciated, thanks.

If I’m not mistaken, I don’t think it’s “disappearing” so much as moving out of view.

I thought of that. however, I can still see the background Quad way passed the point of disappearing.

I ran your code. By repeatedly clicking the right mouse button, I was able to move the button (blue rectangle) as far as x=1600 before it disappeared. Are you sure you’re actually executing the code you posted and not some other version?

Yes, the exact same code.

went back an played with the camera, and discovered it works if i set the camera ParallelProjection to false.