A virtual laboratory for ferroelectric memristive synapses.
Explore bipolar resistive switching, interface-controlled vacancy dynamics, ferroelectric coupling, experimental I-V fitting, and synaptic plasticity in a Pt / La,Mn-doped BiFeO3 / FTO-like thin-film device.
Open the live laboratory · Run locally · Build for Windows · Model scope
Real oxide memristors rarely behave like ideal textbook switches. Their measured response can be asymmetric, cycle-dependent, gradual, and strongly influenced by the two electrode interfaces.
BFO-MemLab turns those coupled ideas into an interactive research workspace:
- Connect internal state to measured current. Follow vacancy accumulation, polarization, effective barriers, and transport on the same sweep.
- Study both interfaces. Pt/BFO and BFO/FTO are treated as distinct, evolving contacts rather than a single lumped resistance.
- Move from switching to synapses. Run potentiation, depression, and retention protocols using the same compact-device perspective.
- Compare with experimental traces. Load a CSV, overlay the measured loop, and inspect linear, logarithmic, asymmetry, and loop-area errors.
- Leave with usable figures. Export clean vector and raster plots alongside the underlying data and parameter set.
The result is a discussion tool for interpreting BFO-like devices, testing compact-model assumptions, and preparing thesis or presentation material.
| Workspace | What it reveals |
|---|---|
| Device Lab | Live Pt / BFO:La,Mn / FTO stack, applied field, polarization direction, vacancy state, and I-V response |
| I-V Sweep | Multi-cycle bipolar sweeps, branch evolution, peak currents, asymmetry, and read conductance |
| Interface Barriers | Qualitative Pt/BFO and BFO/FTO barrier modulation under the selected bias |
| Vacancy Dynamics | Bounded Pt-side and FTO-side defect states carried through the complete sweep history |
| Synaptic Pulses | Potentiation, depression, dynamic range, linearity, and retention estimates |
| Data Fitting | Experimental CSV overlay, manual compact-model adjustment, and fit diagnostics |
| Export Studio | Dark/light SVG figures, high-resolution PNG, simulation CSV, pulse CSV, and parameter JSON |
The pulse workspace models gradual analog weight updates rather than abrupt binary switching. Potentiation and depression rates, amplitudes, timing, nonlinearity, read voltage, and retention relaxation remain adjustable.
The default protocol exposes:
- conductance versus pulse number;
- normalized synaptic weight;
- separate potentiation and depression branches;
- compact linearity scores;
- dynamic range and final depressed state;
- logarithmic-time retention decay.
Load a measured I-V trace directly from the browser or desktop app. BFO-MemLab
recognizes common header pairs such as Voltage,Current, V,I, and lowercase
variants, skips invalid rows, and limits input to 20,000 records.
The fitting workspace reports:
| Metric | Interpretation |
|---|---|
| Linear RMSE | Absolute current mismatch in amperes |
| Log RMSE | Error across current decades with a stable low-current floor |
| Asymmetry difference | Difference between positive/negative peak-current ratios |
| Loop-area difference | Difference in integrated hysteresis-loop area |
Manual controls expose the parameters most useful for compact comparison:
vacancy mobility, Pt barrier, FTO barrier, trap depth, and visual current scale.
The included synthetic dataset at
public/sample-data/example-iv.csv provides
an immediate working example.
Figures are rendered separately from the interface so controls, cards, and toolbars never leak into thesis graphics.
Available outputs:
1400 × 900dark and light SVG figures;2800 × 1800high-resolution PNG;- full sweep-state CSV;
- synaptic protocol CSV;
- reproducible parameter JSON;
- fitting metric JSON.
BFO-MemLab is a compact phenomenological simulator. It is designed to make interface-controlled switching behavior visible and testable without presenting the result as an ab-initio device calculation.
| State | Range | Compact interpretation |
|---|---|---|
xPt |
0 … 1 |
Oxygen-vacancy/interface-defect state near Pt/BFO |
xFto |
0 … 1 |
Oxygen-vacancy/interface-defect state near BFO/FTO |
pFe |
-1 … 1 |
Polarization-like internal state |
E = V / d
dx/dt = polarity · drift · |E|^m · window(x)
- relaxation · (x - xeq)
Phi_eff = Phi_0 - alpha x - beta P - DeltaPhi
I_total = I_ohmic + I_Schottky + I_Poole-Frenkel + I_tunnel
The current model applies a stable series-resistance correction and clamps
exponential arguments to prevent NaN, Infinity, and non-physical numerical
runaway within the supported controls.
What the model can and cannot claim
- exploring polarity-dependent interface switching;
- discussing vacancy-assisted barrier modulation;
- visualizing cycle-to-cycle memory;
- comparing candidate compact parameter sets;
- demonstrating gradual synaptic conductance updates;
- preparing qualitative and semi-quantitative research figures.
- barrier diagrams are qualitative compact-energy views;
- fit parameters are not guaranteed to be unique microscopic quantities;
- ferroelectric response is hysteretic but not a domain-resolved solver;
- temperature and field dependence are intentionally simplified;
- the model does not replace first-principles or finite-element simulation.
Requirements: Node.js 22 or newer and npm.
git clone https://github.com/hasnain7abbas/BFO-MemLab.git
cd BFO-MemLab
npm install
npm run devOpen http://localhost:5173.
npm run lint
npm run test
npm run build
npm run previewBFO-MemLab uses the same React interface inside a Tauri 2 desktop shell.
Windows requirements:
- Rust stable toolchain;
- Microsoft C++ Build Tools;
- WebView2 Runtime;
- Node.js 22 or newer.
npm install
npm run tauri:devBuild native installers:
npm run tauri:buildGenerated Windows artifacts are placed in:
src-tauri/target/release/bundle/msi/
src-tauri/target/release/bundle/nsis/
The desktop window defaults to 1440 × 900 and enforces a minimum working size
of 1200 × 760.
| Layer | Technology |
|---|---|
| Interface | React 19, TypeScript, Vite |
| State | Zustand |
| Scientific plots | Recharts |
| Motion | Framer Motion |
| Desktop | Tauri 2, Rust, WebView2 |
| Testing | Vitest |
| Deployment | GitHub Pages and GitHub Actions |
src/
components/ Advanced laboratory workspaces
physics/ Sweep, transport, vacancy, synapse, CSV, and export logic
state/ Central simulation state
App.tsx Main laboratory shell and navigation
styles.css Scientific dark-interface system
public/
screenshots/ Real application screenshots
sample-data/ Synthetic example I-V data
logo*.svg Project identity assets
src-tauri/
src/ Native desktop entry point
icons/ Generated desktop and platform icons
tauri.conf.json Window and packaging configuration
.github/workflows/
deploy-pages.yml Static web deployment
The test suite covers the behavior that matters most to scientific reliability:
- deterministic bipolar sweep construction;
- SI electric-field conversion;
- bounded vacancy and barrier states;
- finite current output across the default sweep;
- synaptic potentiation and depression bounds;
- CSV column detection and rejection cases;
- experimental comparison metrics;
- standalone SVG figure generation.
npm run lint
npm run test
npm run build
npm run tauri:buildThe current Windows build produces both .msi and NSIS .exe installers.
The live web laboratory is published at:
https://hasnain7abbas.github.io/BFO-MemLab/
Pushes to main trigger
deploy-pages.yml, which installs
dependencies, builds the Vite application with the repository base path, and
publishes dist/ through GitHub Pages.
- bounded automatic parameter optimization;
- batch comparison of repeated I-V cycles;
- temperature-dependent transport studies;
- paired-pulse facilitation protocols;
- pulse protocol presets;
- generated experimental reports.



