BeamNG.Earth
A 1:1 scale streamed Earth for BeamNG.drive: real elevation and satellite imagery, floating origin, LOD streaming from a companion server
A native port of Maxis' Widget Workshop (1995) to Rust: play it in your browser, or on Linux, Windows and macOS.
GamesRust · JavaGitHub @DoridianOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Rust rewrite/port of Widget Workshop
Translation pending
Taken from the repository README
Loading the full README.
Read the full README ↗A decompilation and native port of Widget Workshop: A Mad Scientist's Laboratory (Maxis, 1995) to Rust, for Linux, Windows, macOS and WebAssembly.
Play it in your browser: https://doridian.github.io/WidgetWorkshop/ (the page asks for the CD image, docs/web.md), or download it for Linux, Windows or macOS from the releases (Packages).
The port opens straight into the editor (the original's intro and main
menu are left out): the parts tray, wiring, the worksheets, undo and the
parts' own settings dialogs; the logic, number, science, sound and time,
input and display parts; puzzle mode; widgets loaded and saved in the
original's .WGT format; recording and WAV import; and the help viewer
for WIDGET.HLP. It's a non-matching decompilation of the Win95 build's
WIDGET.EXE: the code behaves like the original, but doesn't compile to
the same bytes. The stack is winit, wgpu and cpal, with a resizable
window, fullscreen and UI scaling.
This repository contains no game data files or original code. You need your own copy of the game's CD.
The port reads the Mac/PC CD (volume WIDGETS), as an .iso or as
a folder with its files. The Internet
Archive has the .iso:
widget-workshop.
It also reads the much smaller OS/2 Warp CD (WW1_01A.ISO, game folder
WIDGET/): its modules are OS/2 executables whose dialogs, menu, strings
and pointers the port turns into the Win95 build's
(docs/os2.md).
The OS/2 CD has no Windows fonts, so the port bundles free stand-ins
(crates/engine/fonts): Wine's MS Sans Serif and Small Fonts, and Widget
Sans, rendered from Liberation Sans, for the gadgets' Arial. When the
Mac/PC CD's own fonts (WIN31/SVGA) are there, they win.
Every push builds the port as one file per platform
(.github/workflows/build.yml); a v* tag publishes them on its release:
widget-workshop-linux-x86_64.AppImage, widget-workshop-linux-arm64.AppImagewidget-workshop-windows-x86_64.exe (the C runtime linked in)widget-workshop-macos.dmg: Widget Workshop.app, for Apple silicon and
Intel (signed ad hoc only: the first start needs a right click, Open)widget-workshop-web.zip: the browser build, as on the Pages siteNone of them carries game data. Started without a CD (from its icon) and
with no .iso or orig in the working directory, the port asks for the
CD image with the system's file dialog and keeps its path in its data
directory (cd-path.txt in ~/.local/share/widget-workshop,
%APPDATA%\Widget Workshop, ~/Library/Application Support/Widget Workshop);
it doesn't ask again while the file is there. On Linux the dialog is the
desktop's (xdg-desktop-portal, else zenity). The icon is the port's own
(tools/make-icon.py).
cargo run --release -p widget # the .iso here, else orig/
cargo run --release -p widget -- CD.iso MY.WGT # a CD and a widget to open
cargo run --release -p widget -- CD.iso 'https://…/widget.html#w=…' # a widget link
cargo run --release -p widget -- --help
Options: --no-audio, --window-size=WxH, --fullscreen, --windowed,
--ui-scale=N|auto (remembered in the settings file), --overrides=DIR
(resources that replace or add to the CD's) and --export=DIR (writes
every resource there in that layout and quits). On Linux the sound needs
ALSA's headers to build (libasound2-dev).
Options ▸ Settings, the port's own, changes the UI scale on the spot
(Automatic, or 1× to 4× in quarters) and switches the port's
enhancements of the original on or off, all of them at once
(original=true in the settings file turns them off). The
enhancements: the parts tray shows a whole folder at once, its pages one
under the other, without the page arrows; and the toolbars, dialogs and
message boxes are dragged whole, not as an outline.
Its Change CD... button, after "Save changes?", picks another CD
image and starts the game again on it (in the browser, the page's start
form comes back).
Widgets travel as links too (docs/web.md): File ▸ Copy Link to Widget puts one on the clipboard, which opens the widget in the browser build for anyone with the CD, and File ▸ Open Widget Link (Ctrl+V) opens the one on the clipboard, natively too.
The browser build: tools/build-web.sh, docs/web.md.
tools/gh, tools/ghidra/: headless Ghidra setup and CLI for the decompilation.tools/build-web.sh: builds the browser version into web/.tools/make-icon.py: draws the port's icon.WIDGET.HLP and the Help menuThe port's code is under the AGPL-3.0-or-later (LICENSE). Widget Workshop is © Maxis; this is an unofficial port, and no game data is included.