The story in a single spectrum.
One Raman scan of graphene oxide carries an entire material report — if you know how to read it. Scroll: the spectrum beside you runs Nitida's full pipeline, from raw noise to a classified map.
Straight off the instrument.
Graphene oxide, untouched: the real peaks are buried under a sloping fluorescence background and sharp cosmic-ray spikes. Adjust the noise to feel where a spectroscopist actually starts — signal-to-noise barely 14 dB.
Pluck the cosmic rays.
Cosmic rays hit the detector at random, leaving single-pixel spikes taller than the signal itself. A median filter finds each one and lifts it out — watch them fly off — without disturbing the bands beneath.
Lift the signal off the background.
The fluorescence background is modelled and subtracted, and the trace settles onto a flat axis. Switch the method and watch the difference: arPLS leaves the cleanest line.
Two bands, two stories.
The ordered G-band and the defect-born D-band are each fit with a pseudo-Voigt. The strip below is the residual — what the model missed. Here it is almost flat: R² 0.9987.
→ Tap the G and D chips to read each band’s FWHM — the width that encodes crystal quality.
Divide D by G.
The ratio of the two band intensities tracks how disordered the carbon is. Drag the reduction slider: as the oxide is reduced, ordered domains shrink and ID/IG climbs from graphene oxide toward reduced GO.
One recipe, every spectrum.
A Raman map is thousands of spectra on a grid. The recipe you just built — despike, baseline, fit, ratio — runs on every point automatically: 2,400 spectra, each pixel coloured by its ID/IG. Chemistry becomes an image. You choose what to colour by.
Let the data find its own axes.
Principal component analysis compresses each spectrum into a couple of numbers that capture most of the variation. Plotted against each other, the pixels drift apart into natural families — no labels required.
Group by similarity.
k-means gathers the pixels into clusters and paints them back onto the map: distinct phases — oxidised flake, reduced patch, substrate — emerge as coherent regions. Choose how many clusters to look for.
Name every region.
Train on a handful of labelled points and Nitida classifies the rest: each pixel is assigned to graphene oxide, reduced GO or substrate, at 97.8% agreement with the ground truth. A full phase map, from one recipe.
Six months later, same figure.
Every step you just watched is captured in a 20 KB JSON. Re-run it on another machine, by another student, and the figure is identical. Replay the whole pipeline below — then bring it to your own data.
macOS · Windows · Linux — offline, your data stays yours.