Overview
WIM is a complete workshop management platform built specifically for fine watchmaking. It combines inventory management, assembly workflows, precision test recording, and production tracking in a single offline-capable web application.
Track all movement parts across multiple storage locations. Manage the full order lifecycle from draft to delivery. Forecast stock needs based on production targets.
Step-by-step assembly guides with 3D model integration. Job assignment to watchmakers with progress tracking and QC checklists.
Record Witschi timing machine results with full statistical analysis. Track pressure tests across assembly phases. All data linked to the watch event timeline.
Mobile-optimised interface for the workshop floor. Job execution, step-by-step guides, timing test recording — all accessible from a phone or tablet.
WIM works fully offline once installed. For multi-device sync, cloud sync must be configured by the administrator.
Login & Roles
WIM uses a session-based login. Sessions are cleared when the browser is closed — you will need to log in again each session. Sessions expire automatically after 8 hours.
User Roles
Changing Your Password (Watchmakers)
Watchmakers can change their own password from within the Watchmaker's Companion App.
- Log in to the Watchmaker's Companion App
- Tap the 🔑 button in the top navigation bar
- Enter your new password twice and confirm
For account creation, role changes, or password resets, contact your administrator.
Dashboard
The dashboard is your home screen after login. It provides an at-a-glance overview of all active movements and quick access to key actions.
- 📌Summary cards — Total movements, parts count, pending orders, and critical alerts
- 📦Movement Registry — Cards for each watch movement with quick stats and navigation buttons
- 💾Backup / Restore / Export — Data management buttons at the top of the screen
- 📖User Manual — Opens this document
- ☁️Cloud Sync — Opens cloud sync configuration (admin)
Movement Cards
Each card shows the movement's stock health, current job status, and quick links to Inventory, Orders, Assembly Hub, 3D Viewer, Timing Tests, and Waterproof Tests for that movement.
Parts & Stock
The inventory system tracks all parts required for each movement, across multiple storage locations.
Viewing Inventory
Open a movement from the dashboard, then click the Inventory tab. The parts table shows all parts with their reference, supplier, quantity needed per watch, stock per location, and alert status.
Stock Alert Colours
| Colour | Meaning |
|---|---|
| ● Red / Critical | Stock will run out within the critical forecast window (default 1 month) |
| ● Amber / Low | Stock will run out within the low-stock window (default 2 months) |
| ● Green / OK | Stock is sufficient for the current production period |
Editing Stock
Click any stock number in the table to edit it inline. Press Enter or click away to confirm. Undo the last change with Ctrl+Z or the Undo button.
Focus View
Use Focus View (🔍 button) to pin specific parts or locations to the table, hiding everything else. Useful when working at a specific bench with a limited parts set.
Write-offs
Record parts used, lost, or damaged using the Write-off button. Enter the quantity and reason. Write-offs are tracked in the history and cannot be undone.
Exporting
Export the current inventory table to CSV or Excel using the Export button in the toolbar.
Orders
The order system manages the full lifecycle from draft order to delivery.
Creating a Draft Order
- Open the Orders tab for a movement
- Click ➕ Add to Draft or use the autocomplete search to find parts
- WIM suggests quantities based on current stock vs. production needs — adjust as needed
- Review the draft order summary at the bottom
- Click Send Order to confirm and move it to the sent orders list
Sent Orders
Sent orders appear in the Order History tab with their expected delivery date. When parts arrive, use the Receiving flow to match the delivery against the order.
Legacy Orders
For orders placed before WIM was set up, use Add Legacy Order to register them as pending. They will count against the suggested order quantities until marked as received.
Receiving Deliveries
Record incoming parts deliveries to automatically update stock levels.
- Click 📬 Record Delivery from the inventory toolbar or dashboard
- Choose mode: Against Existing Order (links to a sent order) or Unregistered Delivery
- Select the movement and parts received, enter quantities
- Optionally assign to a storage location
- Confirm — stock is updated immediately
Use Batch Receive to record multiple parts in a single delivery efficiently.
Production
Production tools help you understand how many watches you can build with current stock and when you need to reorder.
- 🔢Can Make — How many complete watches you can assemble right now with current stock
- 🔥Burn Rate — Parts consumed per month based on your production target
- 📅Months of Stock — How long each part's current stock will last at current burn rate
- ⚠️Critical Alerts — Parts that will run out within the configurable alert horizon
Production targets and alert thresholds are set per movement in System → Settings. Contact your administrator to adjust them.
Assembly Guides & Jobs
The Assembly Hub manages the full watchmaking workflow from guide authoring to job execution.
Assembly Guides (Admin)
Guides are organised into Phases (e.g. "Mainplate Prep", "Keyless Works") and Steps within each phase.
Each step can contain:
- 📝Title and detailed description
- ☑️Checklist items (watchmaker must tick all before completing the step)
- 🟣3D camera views (saved from the viewer, shown alongside the step)
- 📦Parts list (links to inventory)
- ⏱Timing Test Required step type — gates completion until a timing test is recorded
Exporting a Guide
Export any guide as a PDF (cover page, table of contents, one step per page with 3D screenshots) or as a DOCX document. Both are available from the guide editor.
Creating a Job
- Open Assembly Hub → select a movement → click Create Job
- Select the guide and assign it to a watchmaker
- Set the serial reference (optional) and start date
- Confirm — the job appears on the watchmaker's home screen in WCA
QC Checklists
Admins can define QC item templates per movement. When a job is complete, the watchmaker runs through the QC checklist in WCA, signing off each item. Results are timestamped and traceable.
Job Transfer
Jobs can be transferred between watchmakers by the admin if needed (illness, change of assignment, etc.).
3D Viewer
Each movement can have an associated 3D CAD model displayed using the Autodesk Platform Services (APS) viewer. The viewer integrates with inventory, assembly guides, and part isolation.
Features
- 🖱Click any component — See the matching WIM part reference, name, and current stock level in a side panel
- 🔍Isolate parts — Click the 🔩 button on any inventory part to isolate and highlight it in the viewer
- 📖Assembly step integration — When following a guide step, the viewer automatically highlights the parts needed for that step
- 🎥Saved camera views — Each assembly step can store a camera position; it restores automatically when the step is opened
- 🔗Manual linking — Components that don't auto-match can be linked to a WIM part by clicking them and selecting "Link to part"
Administrator Setup — Step by Step
The 3D viewer requires three one-time configuration steps: an Autodesk APS application, a PHP token proxy on your server, and WIM settings. All done from the Admin → 3D Model panel.
Step 1 — Create an Autodesk APS Application
- Go to aps.autodesk.com → sign in → My Apps → Create App
- Choose Server-side web app (2-legged OAuth)
- Select the Data Management API (scope:
data:read) - Copy your Client ID and Client Secret — you will need these for the PHP file
- Upload your Revit/Inventor model to ACC (Autodesk Construction Cloud) or BIM 360 and translate it to SVF2 format via the Model Derivative API. Once translated, copy the model's URN (base64-encoded string starting with
urn:adsk.objects:)
Step 2 — Deploy the Token Proxy on Your Server
The token proxy keeps your Autodesk credentials server-side and validates requests with a shared secret so only WIM can fetch tokens.
- Open
aps-token.phpfrom the WIM project folder - Fill in your credentials at the top of the file:
$clientId = 'YOUR_APS_CLIENT_ID'; $clientSecret = 'YOUR_APS_CLIENT_SECRET'; $proxyKey = 'CHANGE_ME'; // ← set this after Step 3 below
- Upload
aps-token.phpto your OVH/web server (e.g.https://yourserver.com/aps-token.php) - Verify it works: open the URL in a browser — it should return
{"error":"Unauthorized"}(correct — it's blocking requests without the shared key)
Step 3 — Configure WIM
- In WIM: Admin → 3D Model Settings
- In the APS Token URL field, enter the full URL of your deployed PHP file (e.g.
https://yourserver.com/aps-token.php) → click Save Token URL - In the APS Proxy Key field, click Generate Key — this creates a random 48-character secret → click Save Key
- Copy the generated key, open
aps-token.phpon your server and paste it as the value of$proxyKey, then save the file - For each movement, enter its Model URN in the movement's field and click Save URN
- Open the movement → go to the 3D Model tab → the viewer should load
The Proxy Key in WIM and the $proxyKey in your PHP file must match exactly. If you regenerate the key in WIM, you must also update the PHP file, or the viewer will stop loading (401 Unauthorized).
The 3D viewer requires an internet connection. The model is streamed from Autodesk's servers. The token proxy only needs to be reachable when WIM first loads or refreshes a session token (every ~60 minutes).
Part Matching
Components are matched to WIM parts using the Bestandsnummer property embedded in the CAD model. WIM normalises accented characters (ü→u, é→e) and strips movement suffixes automatically to maximise auto-match rates. Components with no auto-match can be linked manually.
Troubleshooting
| Symptom | Likely cause | Fix |
|---|---|---|
| Viewer shows "Loading…" forever | Token URL not reachable or URN not set | Check Token URL in Admin → 3D Model; verify the PHP is live |
| 401 Unauthorized in console | Proxy key mismatch | Regenerate key in WIM, paste into $proxyKey in aps-token.php |
| Model loads but no parts match | Bestandsnummer property missing from model | Use Revit/Inventor to add Bestandsnummer = part reference to each component, re-upload and re-translate |
| Viewer not appearing for a movement | URN not saved for that movement | Admin → 3D Model → enter URN for that movement → Save URN |
Timing Tests
Record, analyse, and export timing machine results for each movement. Supports all standard test phases and all 6 positions.
Adding a Test
- Open a movement → click ⏱ Timing (from any context)
- Click + Add Test
- Enter Serial/Reference, Test Phase, Winding State, and Lift Angle (°)
- Fill in Rate (s/day), Amplitude (°), and Beat Error (ms) for each position
- Optionally upload a Witschi photo and click 🔍 Parse OCR to auto-fill the DU row
- Click Save Test
Test Phases
| Phase | When to use |
|---|---|
| Pre Assembly | Bare movement before assembly begins |
| Final Assembly | Movement fully assembled, case not yet closed |
| Final Test | Watch fully cased, ready for final certification |
| Watch Complete | Final record after all adjustments complete |
Statistics & Tolerances
Each test row shows automatically calculated statistics:
- ⬦Flat avg — Average rate and amplitude across Dial Up + Dial Down
- ⬥Vertical avg — Average across Crown Right, Left, Up, Down
- ΔH/V delta — Difference between flat and vertical averages
- ↕Spread — Range between best and worst position rates
- 🏆Best / Worst position — Position closest/furthest from zero rate
- ♪Beat error avg — Average beat error across all positions
If your administrator has configured tolerances for this movement, out-of-spec results are automatically flagged:
- ⚠Red — Amplitude below minimum threshold
- ⚠Amber — Rate exceeds maximum threshold
Viewing & Exporting a Test
Click ▼ View on any test row to expand the full position table with individual status flags. From the expanded view, export the test as PDF or CSV.
Lift Angle
The lift angle (°) is the escapement's lift angle, used by the timegrapher to compute amplitude. Common values: 45° (pocket watches), 52° (ETA/Sellita), 53°, 55°, 60°. WIM pre-fills this from the last test for that movement.
Waterproof Tests
Record pressure test results for each movement, tracked by test phase.
Test Phases
| Phase | Description |
|---|---|
| Case Only | Empty case without movement, gaskets freshly replaced |
| Case & Movement | Movement installed, crown fitted |
| Final Test | Complete watch, final certification |
| Watch Back for Service | Customer watch returned for service |
Recording a Test
- Open 🌊 Waterproof for a movement
- Click + Add Test
- Select test type (overpressure or underpressure), phase, and pressure (bar)
- Record the result: Pass, Fail, or Conditional
- Note gasket replacement status if applicable
- Save
Watch Event Timeline
A unified chronological log of everything that has happened to a specific movement. The timeline automatically aggregates events from all WIM modules.
| Event Type | Source |
|---|---|
| ⏱ Timing Test | Automatically logged when a timing test is saved |
| 🌊 Waterproof Test | Automatically logged when a pressure test is saved |
| ✅ Assembly Complete | Logged when a job phase is completed |
| 🔍 QC Passed / Failed | Logged when QC checklist is completed |
| 🏷 Serial Assigned | Manual event |
| 🔄 SAV / Service Return | Manual event or SAV log entry |
| 📦 Shipped | Manual event |
| 📝 Note | Manual event |
Access the timeline from the movement card (📋 History button) or from WCA's History tab.
Watchmaker's Companion App
The WCA is a mobile-optimised interface designed for use on the workshop floor. It replaces the full admin UI for users with the Watchmaker role.
Home Screen
Shows your active jobs with progress and status. Tap a job to enter the step-by-step execution view.
Executing a Job
- Tap the job from your home screen
- Work through each step — read the description and check off each checklist item
- If a step shows the 3D viewer, you can view the highlighted parts for that step
- For steps marked ⏱ Timing Test Required, record a timing test before completing the step
- Tap Complete Step once all checklist items are ticked
- When all steps in a phase are complete, the phase is marked done
Bottom Navigation
| Button | Function |
|---|---|
| ⏱ Timing | Record and view timing machine tests |
| 🌊 Waterproof | Record and view pressure tests |
| 📋 History | View the watch event timeline |
| 🔄 SAV | Log a service/SAV return event |
| ✅ QC | Complete the QC checklist for the current job |
Timing Test Required Steps
Some steps are configured to require a timing test before completion. When you reach such a step:
- The step shows an info banner: "A timing test is required to complete this step."
- Tap 📊 Record Timing Test
- The timing modal opens — enter your Witschi results and save
- The step panel updates to show "✓ Timing test recorded"
- The Complete Step button is now enabled
Cloud Sync
Cloud sync keeps your data consistent across multiple devices (desktop, tablet, phone).
Cloud sync configuration (server URL and token) is managed by the administrator. Contact your admin to set it up.
Using the Sync Widget (Admin / User)
The sync status indicator appears in the top-right of the screen. It shows the current sync state:
- ●Synced — Your local data matches the server
- ●Changes available — The server has newer data; click Pull to download
- ●Error — Connection failed; check network or contact admin
Use the ↓ Pull and ↑ Push buttons to manually sync. Ctrl+S saves and pushes simultaneously.
Backup & Restore
Creating a Backup
Click 💾 Backup on the dashboard to download a complete JSON snapshot of all WIM data. Store it safely — on your computer, a USB drive, and ideally a cloud drive.
WIM auto-saves a backup every 60 minutes automatically. Manual backups are also recommended before major changes.
Restoring from Backup
- Click 📂 Restore on the dashboard
- Select the JSON backup file from your computer
- Confirm the restore — cloud sync settings are preserved
- The app reloads with the restored data
Restoring overwrites all current local data. Make sure to create a backup of your current data first if there is any risk of needing it.
Admin Settings
Admin-only settings are available under System in the main navigation.
- 👥Manage Users — Add, edit, or deactivate user accounts. Set roles and passwords.
- 📐Logic Params — Adjust production period, forecast windows, safety stock percentages
- 📍Storage Locations — Define and manage inventory locations per movement
- ⏱Timing Tolerances — Set per-movement timing tolerances (min amplitude, max rate) per phase
- ☁️Cloud Sync — Configure the OVH sync endpoint and token
- 🟣3D Model Settings — Set the APS token URL and model URN per movement
- 💾Auto-Backup — Configure auto-backup frequency and retention
Contact & Support
For any technical problems, configuration questions, or feature requests, contact the administrator.
For password resets, new accounts, or access level changes, contact the administrator. For security reasons, credentials are not published in this document.
For sync configuration, server URL, or token information, contact the administrator. Server credentials are not included in this document.
To install WIM as a standalone app on your device, open it in Chrome or Safari and look for the "Install" or "Add to Home Screen" option in the browser menu. The app will then work offline like a native application.
WIM is a bespoke application built for this workshop. It has no external support line. All questions should be directed to the administrator.