CircuitVerse Frontend Vue is dedicated to enhancing the CircuitVerse platform in several key ways. Our primary focus is on decoupling the CircuitVerse Simulator from the backend, allowing it to function independently and with greater flexibility. Additionally, we're working to remove the reliance on jQueryUI, opting for cleaner and more contemporary code practices. To improve performance and code readability, we're transitioning from traditional DOM mutations to string-based manipulation. Furthermore, we're actively integrating internationalization features to ensure the platform is accessible to users worldwide. In summary, our repository aims to elevate the capabilities and user experience of CircuitVerse through targeted improvements and optimizations.
We would love to hear from you! We communicate on Slack:
This repository supports multiple versions of the simulator.
- v0: Stable production version.
- v1: Experimental version for new features.
To start the development server:
# Start v0 (Default)
npm run dev
# Start v1 (Windows/Unix)
# Set VITE_SIM_VERSION=v1 in your environment and run npm run devWe use a unified build system to generate assets for all versions.
To build all supported versions:
npm run buildTo build a specific version:
npm run build -- v1Built assets will be available in dist/simulatorvue/. Each version will have a predictable entry point:
dist/simulatorvue/v0/simulator-v0.jsdist/simulatorvue/v1/simulator-v1.js
The simulator is designed to be route-agnostic. It can be mounted on any path (e.g., within a Rails view) by including the appropriate script and setting global variables:
<div id="app"></div>
<script>
window.logixProjectId = "0"; // Project ID or "0" for new
window.isUserLoggedIn = true;
</script>
<script type="module" src="/simulatorvue/v0/simulator-v0.js"></script>The simulator can be embedded in two ways:
Use the dedicated embed route in your iframe src.
<iframe
src="/simulatorvue/v0/embed/:projectId"
width="100%"
height="600px"
></iframe>Include the simulator script on any page and set the window.embed flag. This renders the minimal embed UI instead of the full simulator UI.
<div id="app"></div>
<script>
window.embed = true;
window.logixProjectId = "123";
</script>
<script type="module" src="/simulatorvue/v0/simulator-v0.js"></script>The embed mode supports query parameters for customization (e.g., ?theme=dark&fullscreen=false):
theme:light(default) ordarkdisplay_title:trueorfalseclock_time:trueorfalsefullscreen:trueorfalsezoom_in_out:trueorfalse
The Vue Simulator can be integrated into the CircuitVerse main repo as a replacement for the legacy jQuery-based simulator.
- Log in to the CircuitVerse dev server using an admin account.
- Navigate to
/flipper. - Enable the
vuesimfeature flag.
Once enabled, the Rails app will handle routing and data synchronization between the backend and the Vue frontend.
We follow the Code of Conduct of the CircuitVerse Community.
See CONTRIBUTING.md for more information on contributing to CircuitVerse.
This project is licensed under the MIT License.
- Creating the mobile version of the vue simulator
- Testing and bug fixing
- Typescript integration & style Refactoring
- Creating the desktop application
- Removing JQuery