BROWSER-BASED FITS PROCESSING FOR STACKED ASTROPHOTOGRAPHY
Process, stretch, and explore stacked FITS files directly in your browser. Background extraction, channel neutralization, and GHS stretching — no installation, no cloud, no account.
🔭
DROP YOUR FITS FILE HERE
or click to browse · stacked-16_*.fits
OR
ABOUT THIS TOOL
I built FITS Studio to learn how to stretch astrophotography images. I wanted something that delivers results comparable to Siril without the learning curve of professional software. I'm not a developer — just a Dwarf 3 owner who enjoys deep-sky imaging from a Bortle 6 backyard in New England. The tool is Dwarf 3 specific for now and is designed around the linear stacked FITS files the scope produces after a session. It does not stack frames — it takes the stack the Dwarf 3 already made and gives you a proper processing pipeline to bring out the detail.
WHAT IT DOES
✦Background extraction with POLY or TPS-RBF gradient models
✦Automatic channel neutralization to remove LP colour cast
✦GHS, Asinh, and MTF stretching with multi-pass history
◈File: stacked-16_*.fits from a completed Mega Stack session
◈Chrome or Firefox on desktop (WebGL2 required)
◈No installation · no account · nothing uploaded anywhere
FAQ — FITS Studio for stacked DWARF 3 FITS files
What FITS files does FITS Studio accept?
FITS Studio is designed for the stacked-16_*.fits files produced by the DwarfLab Dwarf 3 after a Mega Stack session. It supports 16-bit native DWARF 3 files and 32-bit float FITS. The file must contain three RGB planes (NAXIS3=3). Single-channel and Bayer RAW files are not supported.
Does FITS Studio stack sub-frames?
No. FITS Studio is a post-processing tool for an already stacked result. It takes the linear stacked FITS file the Dwarf 3 produced after a session and gives you a processing pipeline to bring out the detail. It does not stack individual sub-frames.
Are my FITS files uploaded anywhere?
No. FITS Studio runs entirely in your browser. Your files are never uploaded to a server, cloud service, or external system. No account is required and nothing leaves your device.
Which browsers work best with FITS Studio?
Desktop Chrome or Firefox with WebGL2 support. WebGL2 is required for the GPU-accelerated processing that runs at full 8.4 MP Dwarf 3 resolution.
What is the fastest good workflow in FITS Studio?
Load your FITS file or the built-in M42 sample. Go to the LINEAR tab and run Background Extraction, then let Channel Neutralization and Statistics Refresh complete automatically. Optionally apply Gentle Linear Denoise. Switch to the STRETCH tab, open the HISTOGRAM, place the Stretch Point just left of where the data rises, and raise Stretch D until your target appears. Refine with MTF, Asinh, or GHS. Finish with White Balance and export a full-resolution PNG.
Should I start in the LINEAR tab before stretching?
Yes. Starting in the LINEAR tab and running background extraction before stretching generally produces better results. Correcting gradients and balancing the image on linear data first gives you better stretch placement and more predictable colour behaviour. Stretching first and correcting later makes gradients, noise, and colour casts harder to control.
When should I use POLY-2 instead of TPS-RBF for background extraction?
POLY-2 is the normal starting point and handles most Dwarf 3 gradients, especially under suburban skies. Use TPS-RBF only when the background gradient is unusually complex or comes from multiple directions, such as moonlit sessions with multi-source sky glow.
What stretch tools are included in FITS Studio?
FITS Studio includes three stretch modes: MTF (Midtone Transfer Function) for straightforward contrast shaping, Asinh for smooth highlight compression that tends to preserve star colour well, and GHS (Generalised Hyperbolic Stretch) for precise control over faint detail and highlight protection. All three support multi-pass apply with full undo history. An optional Background Color Noise Reduction control desaturates only the darkest background pixels to reduce red/green/blue speckle after stretching.
Brightness and contrast without directly changing color balance.
1
Background Extraction
Not applied
▼
Algorithm
POLY-2 handles most Bortle 6 gradients. TPS-RBF for complex multi-source sky glow.
Sample Grid
Rejection Tolerance1.0
Lower = stricter star rejection. 1.0 is a good default.
Green circles = accepted. Red = rejected. Click to toggle. Scroll to zoom · drag to pan.
Calculate Model
Generate sample grid first
Strength & Apply
Strength100%
Real-time preview. Reduce if edges over-darken.
Apply bakes the correction and runs channel neutralization automatically.
2
Channel Neutralization
Automatic
▶
Runs automatically as part of Apply — no action needed from you.
After gradient subtraction the three channels often have different residual sky levels — light pollution tints red and green unevenly, and the polynomial fit can leave small per-channel biases. Left uncorrected this shows as a brownish or greenish background cast. Neutralization samples the accepted background regions and subtracts the per-channel offset so R, G, B share the same sky floor before any stretch. A colour cast baked into linear data is very difficult to remove after GHS or Asinh amplifies it.
R offset
—
G offset
—
B offset
—
3
Statistics Refresh
Automatic
▶
Runs automatically after neutralization — no action needed from you.
The histogram peak, noise cluster edge, and per-channel sky medians all shift after background correction and neutralization. If the STRETCH tab used pre-correction statistics, BP and SP would be placed against the wrong sky level and the first stretch pass would be miscalibrated. Statistics Refresh discards all pre-correction numbers and recomputes from the corrected linear arrays. The values below are exactly what the STRETCH tab receives.
Sky peak
—
Cluster edge
—
Sky median R
—
Sky median G
—
Sky median B
—
SP position
—
4
Gentle Linear Denoise
Optional
▶
Gentle luminance-only denoise on the corrected linear image. Reduces background noise before stretching while preserving colour balance. Hue and saturation are unchanged. Skip this and go straight to STRETCH if your stack is deep.
Strength0%
Start at 20–40% for linear data. 0% = no effect.
Apply background correction first
5
Linear Detail Recovery
Optional
▶
Recovers subtle structure and tightens soft detail in the linear image before stretching. Uses a masked luminance high-pass technique. Effect is strongest on real midtone structure and suppressed in empty background and star cores. Conservative defaults preserve the natural look of smart-telescope stacks.
Deblur Amount30
Start at 20–40. Higher values risk grit in the background.
Detail Radius
Medium targets 2–4 px features. Small for very tight detail; Large for broader structure.
Star Protection65%
Prevents sharpening star cores. Keep high to avoid crunch.
Halo Protection75%
Extends protection radius around star cores. Prevents dark halos.
Noise Protection80%
Suppresses effect in dark empty sky. Reduces background grit amplification.
Apply background correction first.
6
Ready for Stretch
Waiting
▶
Complete Step 1 to proceed.
Stretch
RiskLowLiftNormalClipNone
Stretch looks controlled.
Stretch Mode
Background Clip?0.000
BG Color Noise Reduction?0%
Midtone (m)?0.490
White Point?1.000
Stretch D?0.00
Stretch Point SP?0.005
Stretch D?0.00
Local Intensity b?0.0
Lower Protection LP0.000
Pixels below LP are returned toward identity — preserves deep shadow detail. Drag green LP marker on histogram. Keep LP ≤ SP.
Highlight Protection HP1.000
Pixels above HP are returned toward identity — protects galaxy cores and star colours. Drag yellow HP marker on histogram. Lower = more protection.
Pass History
PASS 0 OF 0
Bakes current stretch into pixel data and resets sliders to identity. Click any pass in the log to undo back to that point.
Highlights0.00
Power-law compression above midpoint. Reduces blown star cores only.
Star Roll-off0.00
Smooth asymptotic cap. Final star shape control after Highlights.
White Balance
Red1.00
Green1.00
Blue1.00
Adjust R and B until white stars look neutral.
Colour Palette
Reduce Noise
Strength0
Wavelet soft-threshold on display-space noise. Stars and bright cores protected.
Local Contrast
Strength0
Boosts large-scale features (dust lanes, filaments) using wavelet scale 3. Stars protected, deep background untouched.
Quick Preset
AstroClarity Finish
Structure0
Enhances nebula texture, galaxy arms, and dust lanes. Start with 10–25.
Sharpness0
Fine detail sharpening. Use lightly to avoid crunchy stars.
Dehaze / Pop0
Adds broad midtone contrast to washed-out stretched images. Does not replace Background Extraction.
Saturation0
Boosts object color while protecting the dark sky.
Protect stars and background
PASS HISTORY
Use Enhance after stretching. These controls are for final polish only. Small values usually work best.
01 — WHAT FITS STUDIO DOES
A browser-based processor for stacked Dwarf 3 FITS files
FITS Studio is designed for the stacked-16_*.fits files created by the Dwarf 3 after a session or Mega Stack. It does not stack sub-frames. Instead, it takes the linear stacked FITS file the scope already created and gives you a clean processing path: background extraction, channel neutralization, optional linear denoise, stretching, white balance, and PNG export.
For tutorials and first-time use, load the built-in M42 Orion Nebula sample file from the start screen. It is the fastest way to learn the workflow.
02 — THE FASTEST GOOD WORKFLOW
Use this sequence for most images
1) Load your FITS file or the built-in M42 sample.
2) Go to LINEAR and run Background Extraction.
3) Let Channel Neutralization and Statistics Refresh complete automatically.
4) Optionally apply Gentle Linear Denoise.
5) Switch to STRETCH. Open the HISTOGRAM, set the Stretch Point just left of where the data rises, and raise Stretch D until your target becomes visible.
6) Refine with MTF, Asinh, or GHS.
7) Protect bright stars with Highlights or HP in GHS.
8) Finish with White Balance.
9) Export a full-resolution PNG.
The linear cleanup comes first for a reason: a cleaner linear image gives better stretch placement, better colour behaviour, and more predictable results later.
03 — LOAD THE M42 SAMPLE
The best way to learn the app
From the opening screen, click LOAD SAMPLE FILE — M42 Orion Nebula. This loads a Dwarf 3 sample FITS file so you can follow the guide without needing your own data first.
The M42 sample is ideal for tutorials because it shows faint nebula, a bright core, and bright stars — all the things that make the stretch controls meaningful.
04 — START IN LINEAR
Fix the linear image before stretching it
Always begin in the LINEAR tab. Linear data contains the real signal, but it is dim and low-contrast by nature. The goal here is to clean the image before you amplify anything with a stretch.
Stretching first and correcting later usually makes colour cast, background gradients, and noise harder to control.
05 — BACKGROUND EXTRACTION
Use POLY-2 first, then escalate only if needed
Start with POLY-2. It is the best normal starting point for most Dwarf 3 images, especially under suburban skies. Use TPS-RBF only when the background gradient is unusually complex or comes from multiple directions.
Recommended workflow:
• Click GENERATE SAMPLE GRID
• Review accepted and rejected samples
• Click CALCULATE & PREVIEW
• If the correction looks good, click APPLY CORRECTION
If the correction feels too strong near the frame edges, reduce the Strength slider slightly before applying. For most clean examples, 100% is a good first try.
06 — AUTOMATIC LINEAR CLEANUP
Channel Neutralization and Statistics Refresh run for you
After background correction is applied, FITS Studio automatically runs Channel Neutralization and Statistics Refresh.
Channel Neutralization removes residual per-channel sky bias so red, green, and blue share the same background floor before stretching.
Statistics Refresh then recalculates the histogram-based values the STRETCH tab uses.
This is one of the reasons the recommended workflow starts in LINEAR. Stretch placement is more reliable after the linear image has been normalized.
07 — OPTIONAL LINEAR DENOISE
Use it lightly, before stretch
Gentle Linear Denoise is optional. Use it when the background is noisy and you want to take the edge off before stretching amplifies that noise. A light setting is usually best.
Suggested starting point:
• 20–30% for moderate noise
• Skip it entirely for very deep, clean stacks
The goal is not to blur the image. The goal is to smooth background noise while preserving colour balance and keeping stars under control.
08 — UNDERSTANDING THE HISTOGRAM
Use it as a control surface, not just a graph
The histogram shows the tonal distribution of the image.
General guide:
• Left side = background and dark signal
• Right side = brighter stars and cores
• The main hump near the left is usually normal sky background
The markers represent active control points, depending on the current mode:
• BP (orange) = black point / background clip
• WP (red) = white point in MTF only
• SP (blue dashed) = stretch point in GHS
• LP (green) and HP (amber) = lower and highlight protection in GHS — only visible when active
Do not assume the BP marker must always sit fully outside the histogram data. In a conservative stretch, it may sit near the left shoulder of the data to preserve faint structure.
09 — CHOOSING A STRETCH MODE
MTF, Asinh, and GHS are different tools
MTF
Use when you want a simple, straightforward stretch and quick contrast shaping.
Asinh
Use when star colour matters. Asinh is often the safest first stretch for bright-star fields because it tends to preserve star colour better than a harsher stretch.
GHS
Use when you want the most control over faint detail versus highlights. GHS is excellent when you want to shape the stretch more precisely and protect bright cores and stars.
A useful rule: start with Asinh if bright stars are your main concern, and use GHS when you want more fine-grained control.
10 — A SIMPLE M42 WORKFLOW IN ASINH
Great for star colour and a bright core
Recommended sequence for the built-in M42 sample:
1) Clean the image in LINEAR
2) Switch to Asinh
3) Open the HISTOGRAM to watch the data as you work
4) Raise Stretch D gradually
5) Watch the bright core and the stars
6) If stars start to get harsh or pale, use Highlights to tame them
7) Fine-tune the background with BP only if needed
8) Finish with White Balance
The goal is not to make Orion as bright as possible immediately. The goal is to build the image in stages without blowing out the core or whitening the stars too early.
11 — A SIMPLE M42 WORKFLOW IN GHS
Best when you want more control
Recommended sequence:
1) Start from the cleaned linear image
2) Switch to GHS
3) Place SP near the rise of the data
4) Increase Stretch D gently
5) Use HP to protect the bright core and bright stars
6) Use LP only if you want to preserve deeper shadow structure
7) Use Highlights as a finishing control for bright stars
8) Finish with White Balance
In GHS, build the stretch slowly. If the image starts to look harsh, add protection before adding more stretch.
12 — STAR COLOUR AND BRIGHT STARS
Protect highlights before forcing more stretch
Star colour is usually lost because of aggressive highlight handling, not because of a conservative black point.
Best practices:
• Keep BP conservative at first
• Avoid pushing the stretch too hard too early
• In Asinh, use Highlights to tame bright stars
• In GHS, use HP to protect bright stars and the core
• Finish with White Balance using neutral-looking stars as reference
If stars are turning white, do not solve that by pushing BP harder. Reduce the stretch or add more highlight protection instead.
13 — WHITE BALANCE
Do this after the main stretch is close
Use White Balance near the end of the workflow, after the structure and brightness are mostly where you want them.
Practical guide:
• If stars look too orange or yellow, reduce Red slightly or raise Blue
• If stars look too blue, raise Red slightly
• Use neutral-looking stars as your reference
White Balance is a finishing tool. It should not need to rescue a poorly stretched image.
14 — EXPORT
Finish with a full-resolution PNG
When the image looks right, click EXPORT FULL RES PNG. This saves your current processed result as a full-resolution PNG for sharing, archiving, or finishing in another editor.
A good export point is: the structure is visible, the background is clean enough, the stars are controlled, and the colour balance looks believable.
15 — TROUBLESHOOTING
Common issues and what to try next
The image still looks flat
Increase the stretch more gently before pushing BP too far.
The background is too gray
Raise BP slightly, but do it carefully.
Stars are turning white
Stop increasing the main stretch. Use Highlights or HP instead.
The M42 core looks harsh
Back off the stretch slightly and add highlight protection.
The BP marker sits inside the histogram
That can be normal in a conservative stretch. It often means faint signal is being preserved.
The LDR preview looks different from the final stretch
That is expected. The Linear Detail Recovery preview uses its own temporary display stretch so you can see the linear data. Your real stretch settings are untouched and take over after Apply.
When in doubt, make smaller moves. Most overprocessed images come from one or two controls being pushed too hard, too early.
FITS Info
🍪 This site uses Google Analytics to understand how people use FITS Studio. No personal data is collected and your FITS files never leave your device.
Your choice is saved locally and you won't be asked again. You can change it anytime by clearing your browser data.
HELP
New FITS Studio version available. Reload to use the latest release.