You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Navigate to the CIM-Builder directory and install it (without dependencies, as it requires an older version of cim-graph):
122
-
123
-
```bash
124
-
cd CIM-Builder
125
-
```
126
-
127
-
**With PIP:**
128
-
129
-
```bash
130
-
python -m pip install . --no-deps
131
-
```
132
-
133
-
**With UV:**
134
-
135
-
```bash
136
-
uv pip install . --no-deps
137
-
```
138
-
139
-
### Step 5: Install GLM Parser
111
+
### Step 4: Install GLM Parser
140
112
141
113
#### Standard Installation (Windows, Linux, Intel/AMD Mac)
142
114
@@ -156,14 +128,14 @@ uv pip install glm
156
128
157
129
You'll need to build the GLM parser from source using Nim.
158
130
159
-
Clone the GLM parser:
131
+
Clone the glm parser repository i forked:
160
132
161
133
```bash
162
134
cd GLIMPSE/local-server/
163
135
```
164
136
165
137
```bash
166
-
git clone https://github.com/NREL/glm.git
138
+
git cone https://github.com/itsMando/glm.git
167
139
```
168
140
169
141
```bash
@@ -173,29 +145,26 @@ cd glm
173
145
Build the parser (ensure [Nim](https://nim-lang.org/) is installed and in your PATH):
174
146
175
147
```bash
176
-
nim c -d:release --opt:size --passC:"-flto" --passL:"-flto" --app:lib --out:lib/_glm.so src/glm.nim
148
+
nimble -v
177
149
```
178
150
179
-
Create a wheel:
180
-
181
151
```bash
182
-
python setup.py bdist_wheel
183
-
# or
184
-
python3 setup.py bdist_wheel
152
+
nimble package
153
+
nimble release
185
154
```
186
155
187
-
Install the wheel from `dist/` folder:
156
+
Install the python binary distributable from `dist/` folder:
188
157
189
158
**With PIP:**
190
159
191
160
```bash
192
-
pip install dist/<whl-filename>.whl
161
+
pip install dist/*.whl
193
162
```
194
163
195
164
**With UV:**
196
165
197
166
```bash
198
-
uv pip install dist/<whl-filename>.whl
167
+
uv pip install dist/*.whl
199
168
```
200
169
201
170
## Start GLIMPSE
@@ -208,6 +177,43 @@ npm run dev
208
177
209
178
The application will start in development mode. Open your browser and navigate to the provided local address (typically `http://localhost:5173/`) to access GLIMPSE.
210
179
180
+
## Desktop App (Electron)
181
+
182
+
GLIMPSE can also run as a standalone desktop application. The Electron shell starts the bundled local server automatically on launch and shuts it down (including all child processes) when the window is closed — no terminal or browser needed.
183
+
184
+
> [!NOTE]
185
+
> These steps assume you have completed the **Build from Source** setup above (Node dependencies and the Python environment for `local-server/`). The Python environment must include `pyinstaller`, which is listed in both `local-server/requirements.txt` and `local-server/pyproject.toml`.
186
+
187
+
### Develop in a Desktop Window
188
+
189
+
Runs the Python backend, the Vite dev server, and Electron together (with hot reload). Closing the Electron window stops all three:
190
+
191
+
```bash
192
+
npm run electron:dev
193
+
```
194
+
195
+
### Build an Installer
196
+
197
+
Installers are built **on and for the OS you are running** (electron-builder cannot cross-compile, e.g. a Windows installer must be built on Windows):
198
+
199
+
```bash
200
+
npm run dist # build for the current OS
201
+
npm run dist:linux # AppImage + .deb (run on Linux)
202
+
npm run dist:win # NSIS installer (run on Windows)
203
+
npm run dist:mac # .dmg (run on macOS)
204
+
```
205
+
206
+
Each `dist` command runs three steps:
207
+
208
+
1.`vite build` — bundles the React frontend into `dist/`
209
+
2.`pyinstaller server.spec` — freezes the Python backend (with its Python runtime) into `local-server/dist/server/`
210
+
3.`electron-builder` — packages both into an installer in `release/`
211
+
212
+
The finished installer is written to the `release/` directory. The installed app needs no Node or Python on the target machine — the backend is fully self-contained.
213
+
214
+
> [!TIP]
215
+
> If `pyinstaller` is not on your PATH, activate the Python environment you created for `local-server/` first (or, with UV, run `uv run pyinstaller server.spec --noconfirm` inside `local-server/`).
216
+
211
217
## Run with Docker
212
218
213
219
The repository ships with a [Docker Compose](https://docs.docker.com/compose/) setup that builds and runs GLIMPSE as two containers — the React frontend (served by nginx) and the Flask + SocketIO backend — so you don't need to install Node, Python, or any of the plugins yourself.
0 commit comments