Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
46 commits
Select commit Hold shift + click to select a range
818d657
Added Click to Move
AnthonyvW Jan 8, 2026
740d779
refactored automated controller
AnthonyvW Jan 8, 2026
66208e1
refactored the camera calibration
AnthonyvW Jan 9, 2026
fbe7ba7
Added Sample Slot Calibration Menu
AnthonyvW Jan 9, 2026
12344b2
Calibration related changes
AnthonyvW Jan 9, 2026
2a78f85
Added Default Settings
AnthonyvW Jan 9, 2026
d6f1bb5
modified layout and added toggles
AnthonyvW Jan 9, 2026
fd312e7
image stacking/stitching test
AnthonyvW Jan 20, 2026
38cd921
removed old stuff
AnthonyvW Jan 20, 2026
7e148d1
removed remaining leftovers
AnthonyvW Jan 20, 2026
6333701
missed one
AnthonyvW Jan 20, 2026
46e6319
updated some hardware
AnthonyvW Jan 23, 2026
928c0a9
camera preview and logging
AnthonyvW Jan 26, 2026
852f71f
Added timestamps to logs
AnthonyvW Jan 26, 2026
157b50f
Updated config handling and settings support
AnthonyvW Jan 28, 2026
b45d7c6
Added Toasts and Camera Controls
AnthonyvW Jan 29, 2026
2cdf7ff
added more logging features
AnthonyvW Jan 31, 2026
69b662e
Camera is now multithreaded
AnthonyvW Jan 31, 2026
48da1b8
uses annotations to prevent errors
AnthonyvW Jan 31, 2026
2ea9985
Added camera manager
AnthonyvW Jan 31, 2026
e8ba94c
updated camera imports and made camera class consistent
AnthonyvW Jan 31, 2026
cbb6936
updated import
AnthonyvW Feb 1, 2026
f97cdf0
updated camera settings pattern
AnthonyvW Feb 1, 2026
4b437f6
now happy with generic settings
AnthonyvW Feb 3, 2026
d0e8f31
expanded settings and fixed some camera settings
AnthonyvW Feb 5, 2026
5fff389
fixed bunch of settings and added warnings
AnthonyvW Feb 7, 2026
66fdb2c
fixed some camera options
AnthonyvW Feb 7, 2026
f2b79ad
removed bad camera settings
AnthonyvW Feb 7, 2026
d0ca69e
fixed tiff bgr problem
AnthonyvW Feb 9, 2026
3e64965
removed leftover/redundant code
AnthonyvW Feb 10, 2026
0b472b9
resolutions dropdown now properly display in camera settings
AnthonyvW Feb 10, 2026
e7b5ef3
changed order of settings menu
AnthonyvW Feb 10, 2026
35380c9
fixed autoexposure checkbox not working
AnthonyvW Feb 10, 2026
29da777
exposure settings now automatically adjust according to auto exposure
AnthonyvW Feb 11, 2026
c07fe1b
modified styling, and added camera flipping and rotation
AnthonyvW Feb 11, 2026
b53a13b
moved frame handling to the camera manager.
AnthonyvW Feb 12, 2026
fe31c82
Added Camera Overlays
AnthonyvW Feb 12, 2026
9e37681
Added Dark Field Correction
AnthonyvW Feb 12, 2026
ffb0847
fixed default image type
AnthonyvW Feb 12, 2026
b2d9a65
Added placeholder navigation widget
AnthonyvW Feb 13, 2026
039f443
Added Machine vision button
AnthonyvW Feb 13, 2026
f6b513a
renamed to FieldWeave
AnthonyvW Feb 14, 2026
deeeffd
made setting objects more available
AnthonyvW Feb 14, 2026
88e0a92
changed setting close prompt
AnthonyvW Feb 16, 2026
514e2b2
moved files to common folder
AnthonyvW Feb 16, 2026
cb61e23
state changes
AnthonyvW Feb 18, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
44 changes: 0 additions & 44 deletions .github/ISSUE_TEMPLATE/camera-mount-request.md

This file was deleted.

67 changes: 0 additions & 67 deletions .github/ISSUE_TEMPLATE/mount-request.md

This file was deleted.

7 changes: 5 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
./input/
output/

misc/test_img/
misc/input/

config/cameras/amscope/backups/
config/cameras/amscope/settings.yaml

Expand All @@ -10,8 +13,8 @@ config/printers/Ender3/settings.yaml
config/automation/backups/
config/automation/settings.yaml

config/forge/backups/
config/forge/settings.yaml
config/fieldweave/backups/
config/fieldweave/settings.yaml

# Libraries
focus-stack/
Expand Down
42 changes: 21 additions & 21 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
# Forge - Low Cost Gigapixel Scanner
# FieldWeave - Low Cost Gigapixel Scanner

[![Windows](https://custom-icon-badges.demolab.com/badge/Windows-0078D6?logo=windows11&logoColor=white)](#)
[![Linux](https://img.shields.io/badge/Linux-FCC624?logo=linux&logoColor=black)](#)
![Python](https://img.shields.io/badge/Python-3.12-blue?logo=python&logoColor=white)


Forge is an opensource, gigapixel imaging system designed to scan tree core samples with high precision. Built upon a modified off the shelf 3D printer, it automates the imaging of multiple samples, producing high resolution images suitable for dendrochronology and related research.
FieldWeave is an opensource, gigapixel imaging system designed to scan tree core samples with high precision. Built upon a modified off the shelf 3D printer, it automates the imaging of multiple samples, producing high resolution images suitable for dendrochronology and related research.



Expand All @@ -24,7 +24,7 @@ Forge is an opensource, gigapixel imaging system designed to scan tree core samp
<tr>
<td width="37%">
<a href="media/DeveloperForge.jpg">
<img src="media/DeveloperForge.jpg" width="100%" alt="A picture of Forge using a heavily moddeed Ender 3 3D printer.">
<img src="media/DeveloperForge.jpg" width="100%" alt="A picture of FieldWeave using a heavily moddeed Ender 3 3D printer.">
</a>
</td>
<td width="50%">
Expand All @@ -34,31 +34,31 @@ Forge is an opensource, gigapixel imaging system designed to scan tree core samp
</td>
</tr>
<tr>
<th>Forge on a heavily modded Ender 3 3D printer.</th>
<th>Forge's GUI</th>
<th>FieldWeave on a heavily modded Ender 3 3D printer.</th>
<th>FieldWeave's GUI</th>
</tr>
<tr>
<td width="37%">
<a href="media/WoodExample.jpg">
<img src="media/WoodExample.jpg" width="100%" alt="An example of a single image taken using Forge">
<img src="media/WoodExample.jpg" width="100%" alt="An example of a single image taken using FieldWeave">
</a>
</td>
<td width="50%">
<a href="media/M2HeatsetInsert.jpeg">
<img src="media/M2HeatsetInsert.jpeg" width="100%" alt="A M2 Heatset insert tip imaged using Forge and then stitched using an external program.">
<img src="media/M2HeatsetInsert.jpeg" width="100%" alt="A M2 Heatset insert tip imaged using FieldWeave and then stitched using an external program.">
</a>
</td>
</tr>
<tr>
<th>The end of a tree core sample taken using a MU1000 HS camera</th>
<th>A M2 Heatset Insert Tip taken using a MU500 Camera. Typical Forge outputs for tree core samples are significantly larger. Click to view full resolution</th>
<th>A M2 Heatset Insert Tip taken using a MU500 Camera. Typical FieldWeave outputs for tree core samples are significantly larger. Click to view full resolution</th>
</tr>
</table>

## Forge for Reflected Light Microscopy
## FieldWeave for Reflected Light Microscopy
> **Reflected Light Microscopy (alternate lens configuration)**
These images were captured using Forge with a different lens and illumination setup. The same capture pipeline was used, with image stacking and stitching currently performed using external tools.
Forge does not officially support high magnification imaging yet, but it is being worked on. See github issue [#45](https://github.com/AnthonyvW/FORGE/issues/45)
These images were captured using FieldWeave with a different lens and illumination setup. The same capture pipeline was used, with image stacking and stitching currently performed using external tools.
FieldWeave does not officially support high magnification imaging yet, but it is being worked on. See github issue [#45](https://github.com/AnthonyvW/FORGE/issues/45)
<table>
<tr>
<td width="50%">
Expand Down Expand Up @@ -87,7 +87,7 @@ Forge is an opensource, gigapixel imaging system designed to scan tree core samp
<tr>
<td width="50%">
<a href="media/TreeCoreMagnified.jpg">
<img src="media/TreeCoreMagnified.jpg" width="100%" alt="Picture of the full width of a tree core sample taken using Forge and a 10x microscope objective.">
<img src="media/TreeCoreMagnified.jpg" width="100%" alt="Picture of the full width of a tree core sample taken using FieldWeave and a 10x microscope objective.">
</a>
</td>
</tr>
Expand All @@ -109,7 +109,7 @@ Forge is an opensource, gigapixel imaging system designed to scan tree core samp

## Printer Modification

Before using Forge, your 3D printer must be modified to mount the camera system in place of the print head.
Before using FieldWeave, your 3D printer must be modified to mount the camera system in place of the print head.

### Required Printed Parts

Expand Down Expand Up @@ -151,7 +151,7 @@ Before modifying your printer, you must 3D print the following components:
- Screw on the imaging lens securely.

7. **Install Light**
Install the light you will be using with Forge.
Install the light you will be using with FieldWeave.
> If using the Amscope ring light, place the light pads onto the metal tips of the screws that hold the light in place before putting the light on the lens.

8. **Plug Everything in**
Expand Down Expand Up @@ -187,7 +187,7 @@ Prerequisites\. Ensure you have the latest version of python installed, and you

3\.2\. Move the downloaded zipped folder into 3rd_party_imports

4\. Configure the camera settings using `amscope_camera_configuration.yaml`. For now, you can copy settings from TRIM until I get around to properly implementing this functionality into Forge.
4\. Configure the camera settings using `amscope_camera_configuration.yaml`. For now, you can copy settings from TRIM until I get around to properly implementing this functionality into FieldWeave.

5\. Run the main application:

Expand All @@ -197,7 +197,7 @@ Prerequisites\. Ensure you have the latest version of python installed, and you

---
## Confirmed Compatible Cameras
Forge supports USB cameras through a modular driver architecture.
FieldWeave supports USB cameras through a modular driver architecture.

| Camera Model | Notes |
|-------------------------|-----------------------------|
Expand All @@ -211,7 +211,7 @@ Forge supports USB cameras through a modular driver architecture.

### Adding Support for New Cameras

Users are encouraged to contribute new camera interfaces by implementing the Forge camera interface and submitting them as pull requests.
Users are encouraged to contribute new camera interfaces by implementing the FieldWeave camera interface and submitting them as pull requests.

If your camera is not currently supported or you would like to contribute an interfaces, please open an issue or submit a pull request.

Expand All @@ -222,9 +222,9 @@ Alternatively, contributions of driver implementations with thorough documentati

## 3D Printer Compatibility

Forge is designed to run on 3D printers using **Marlin firmware**, which supports standard G-code over USB serial. Compatibility with other firmware types varies and may require additional configuration or is not currently supported.
FieldWeave is designed to run on 3D printers using **Marlin firmware**, which supports standard G-code over USB serial. Compatibility with other firmware types varies and may require additional configuration or is not currently supported.

> Not sure if your 3D printer will work? Plug your printer into your computer via USB, and then start Forge. If the printer homes then it is compatible with Forge.
> Not sure if your 3D printer will work? Plug your printer into your computer via USB, and then start FieldWeave. If the printer homes then it is compatible with FieldWeave.

## Confirmed Compatible Printers

Expand All @@ -240,10 +240,10 @@ Forge is designed to run on 3D printers using **Marlin firmware**, which support
| Printer / Firmware | Status | Reason |
|----------------------------------|---------------|------------------------------------------------------------------------|
| **Klipper-based printers** | ❓ Unverified | Serial responses (e.g., `ok`, `M400`) may differ. Needs testing. |
| **RepRapFirmware (e.g., Duet)** | ❌ Incompatible | Different G-code syntax; not supported by Forge |
| **RepRapFirmware (e.g., Duet)** | ❌ Incompatible | Different G-code syntax; not supported by FieldWeave |
| **Sailfish Firmware (e.g., FlashForge)** | ❌ Incompatible | Proprietary, non-standard G-code |
| **Proprietary OEM firmware** | ❌ Incompatible | Often locked or limited (e.g., XYZprinting); lacks serial G-code input |
| **Non-G-code motion platforms** | ❌ Incompatible | Forge requires G-code over USB for motion control |
| **Non-G-code motion platforms** | ❌ Incompatible | FieldWeave requires G-code over USB for motion control |

> Want to help verify compatibility with other printers, firmware, or cameras?
> [Open an issue](https://github.com/AnthonyvW/FORGE/issues) with your setup details and test results!
Expand Down
Loading