cev-sim is a browser-based autonomous vehicle and cev-sim workbench. It uses Next.js and React for the UI, Three.js for the 3D simulator, a visual scripting canvas for node programs, and an external Python orchestrator process for ROS-style topic integration.
- Node.js and npm.
- Python 3.9+ only if you plan to run the external orchestrator.
- Optional ROS 2 environment if you want the orchestrator to bridge real ROS 2 topics.
Fastest path — fetch and run the installer (requires git, Node.js 20+, and npm):
curl -fsSL https://raw.githubusercontent.com/cornellev/ev-sim/main/install.sh | bashOptions:
# custom directory
curl -fsSL https://raw.githubusercontent.com/cornellev/ev-sim/main/install.sh | bash -s -- --dir ~/ev-sim
# clone + install + start the dev server
curl -fsSL https://raw.githubusercontent.com/cornellev/ev-sim/main/install.sh | bash -s -- --startIf you already cloned the repo:
npm installnpm run devOpen the local URL printed by Next. Press Escape to open the app menu. From there you can switch between:
- Scripting — visual node editor.
- Simulation — vehicles, sensors, and scenario playback.
- Environment Editor — author roads, buildings, props, and import real-world geography.
For a production-style local run:
npm run build
npm run startnpm run start launches server/App.js, which serves Next through Express on PORT or 3000.
npm run dev
npm run build
npm run start
npm run lint
npm testnpm test runs the Node built-in test runner against tests/*.test.js.
Live ROS-style topics are served by a separate repository:
git clone https://github.com/cornellev/orchestrator.git
cd orchestrator
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
python main.pyBy default cev-sim expects:
- WebSocket topics at
ws://localhost:8080. - Message type sync at
http://localhost:8090.
To enable the orchestrator's ROS 2 bridge, run it from a ROS 2 environment:
ROS_ENABLED=true python main.pySee ROS Integration for the integration boundary and current topic usage.
CommonRoad scenarios are not committed to this repo. Download them from https://gitlab.lrz.de/tum-cps/commonroad-scenarios and place the scenarios folder under public/, creating paths like:
public/scenarios/recorded/NGSIM/Peachtree/USA_Peach-1_1_T-1.xml
See Assets before adding large or generated files.
To preview Google Photorealistic 3D Tiles in the environment editor, add a Google Maps API key to .env.local:
NEXT_PUBLIC_GOOGLE_MAPS_API_KEY=your_key_hereRestart the dev server after adding the key. See Earth Import for the full workflow.