1. Introduction

1.1 What is FizziQ Web?

FizziQ Web is a free web application that supports students throughout their scientific and experimental process. From data capture to communicating results, FizziQ Web provides all the tools needed to run a complete experimentation session on a computer.

No installation required: simply open fizziqweb.web.app in Chrome, Edge, Firefox, or Safari.

1.2 The three pillars of FizziQ Web

FizziQ Web is organized around three main features that correspond to the three stages of the scientific process:

🔬

1. Experiment

Capture data

📊

2. Analyze

Organize and understand

📝

3. Share

Communicate your results

Experiment: capturing data

FizziQ Web offers five data sources, all compatible with one another:

  • Audio analysis: recording and analyzing sound through the computer's microphone (sound level, frequency, spectrum, spectrogram)
  • Kinematic analysis: tracking videos and chronophotographs to study motion (positions, velocities, accelerations)
  • External sensors: connection to FizziQ Connect or microcontrollers (Arduino, micro:bit) via Bluetooth or USB
  • Manual entry: creating data tables filled in by the student
  • Simulations: virtual experiments (pendulum, spring, ballistics, circuits, waves, ideal gas...) generating usable data
Unified data: Whatever the source (real experiment, sensor, or simulation), the data is in the same format and can be analyzed with the same tools.

Analyze: organizing and understanding data

All captured data arrives in the experiment notebook as observation cards. The student can:

  • Organize their data in tables
  • Add columns and create calculated quantities (formulas)
  • Define the units of each quantity
  • Create graphs with different scales
  • Perform modeling and curve fitting

Share: communicating your results

Once the analysis is complete, the student can create a final report that summarizes their research:

  • Writing explanatory text
  • Inserting photos and diagrams
  • Integrating tables and graphs from the experiment notebook
  • Adding mathematical formulas (LaTeX syntax)
  • Exporting to PDF, Word, or image

1.3 Detailed features

🎵

Audio analysis

Waveform, spectrum, spectrogram

🎬

Video analysis

Tracking, kinematics, trajectories

📷

Chronophotographs

Import and motion analysis

⚙️

Simulations

Pendulum, spring, waves, gas...

🔌

FizziQ Connect

External Bluetooth/USB sensors

📊

Data tables

Data, formulas, graphs

📝

Report editor

Reports with LaTeX formulas

🐍

Python

Built-in interpreter

1.3 Browser compatibility

BrowserAudioVideoSimulationsBluetoothUSB
ChromeYesYesYesYesYes
EdgeYesYesYesYesYes
FirefoxYesYesYesNoNo
SafariYesYesYesNoNo
Recommendation: Use Chrome or Edge to access all features, in particular the Bluetooth connection with FizziQ Connect.

1.4 Differences from FizziQ mobile

FizziQ Web complements the mobile application:

  • No built-in sensors: a computer has no accelerometer or GPS (use FizziQ Connect for external sensors)
  • Advanced audio analysis: high-resolution spectrogram, detailed analysis
  • Complete video analysis: kinematic tracking, calculation of velocities and accelerations
  • Physics simulations: pendulum, spring, ballistics, circuits, waves, ideal gas, inclined plane, centrifuge
  • Larger screen: ideal for data analysis, graphs, and reports
  • Document editor: scientific reports with LaTeX formulas

1.5 Privacy and free access

Local data: All files are stored locally on your computer. No account is required. Student data remains private and confidential. FizziQ Web is entirely free.

2. Getting started

2.1 Accessing FizziQ Web

  1. Open your Chrome or Edge browser
  2. Go to fizziqweb.web.app
  3. Click Experiment to access the tools

2.2 General interface

General interface of FizziQ Web
FizziQ Web interface with side menu

The FizziQ Web interface is organized around a left-hand side menu:

  • Home: home page and quick access
  • Experiment: access to the analysis and simulation modules
    • Audio analysis
    • Video analysis
    • Chronophotographs
    • External sensors (FizziQ Connect)
    • Data table
    • Simulations
  • Analyze: data analysis tools
  • Share: screen sharing and export
  • Discover: educational activities and resources
  • Tools: additional tools (calculator, synthesizer...)
  • Settings: application settings

2.3 Your first measurement: analyzing a sound

Here is how to carry out your first audio analysis:

  1. Click ExperimentAudio analysis
  2. Click Audio SourceSound library
  3. Select Tuning fork A3 (440 Hz)
  4. Observe the waveform and the frequency spectrum
  5. Use the scroll wheel or the Zoom buttons to see the details
  6. Click Add to notebook to export the analysis
Tip: Zoom in to display 10-20 complete oscillations for a clear observation of the periodic signal.

3. Audio analysis - Experiment

FizziQ Web audio analysis - waveform and spectrum
Audio analysis: waveform and frequency spectrum

3.1 Audio sources

You can analyze sound in several ways:

  • Record with the computer's microphone
  • Load an audio file (WAV, MP3, OGG, FLAC, M4A)
  • Built-in sound library

Sound library

The built-in library offers many educational sounds:

  • 440 Hz tuning fork: pure reference tone
  • Musical instruments: piano, guitar, flute, violin...
  • White noise: all frequencies
  • Siren: frequency variation
  • Doppler effect: demonstration of the frequency shift
  • Risset bells: auditory illusion of an endless rise
  • Beats: interference of two nearby frequencies

3.2 Analysis modes

ModeDisplayUse
AmplitudeTime-domain waveform (oscillogram)Observe the structure of the sound, measure the period
Sound level (dB)Intensity in decibelsMeasure the volume, compare sources
Fundamental frequencyMain frequency (Hz)Identify a note, tune an instrument
SpectrumFrequencies at an instantAnalyze harmonics, timbre
SpectrogramTime-frequency evolutionComplex sounds, melodies, voice, Doppler effect

3.3 Reading the spectrogram

The spectrogram displays the evolution of the frequency spectrum over time. It is a powerful tool for analyzing complex sounds.

Color code:

  • Black: silence
  • Blue: low intensity
  • Yellow: medium intensity
  • Red: maximum intensity

Examples of spectrogram uses

  • Melody: observe the successive notes
  • Voice: analyze formants and harmonics
  • Doppler effect: visualize the frequency shift
  • Instruments: compare timbres

3.4 Measurement tools

  • Interactive cursor: click on the graph to measure a precise point
  • Zoom: scroll wheel or +/- buttons to enlarge
  • Synchronization: audio playback synchronized with the display
  • Min/max display: visualize the envelope of the signal

3.5 Exporting audio data

Depending on the analysis mode, you can export:

  • Amplitude mode: Time (s), Amplitude
  • Frequency mode: Time (s), Frequency (Hz)
  • Spectrum mode: Frequency (Hz), Magnitude
  • Spectrogram: data table or image

4. Video analysis - Experiment

FizziQ Web includes a complete kinematic video analysis module, allowing you to study the motion of objects from videos.

FizziQ Web kinematic video analysis
Video tracking and kinematic analysis

4.1 Importing videos

Supported formats: MP4, WebM, MOV, AVI, and most common video formats.

  1. Click ExperimentVideo analysis
  2. Click Load a video
  3. Select your video file
  4. The video appears in the tracking interface

4.2 Scale calibration

Before tracking, you must calibrate the scale to convert pixels into meters:

  1. Click Calibrate the scale
  2. Click on the two ends of a reference object (ruler, meter stick...)
  3. Enter the actual length of the object
  4. The scale is set for the entire analysis
Tip: Use a clearly visible reference object perpendicular to the camera for accurate calibration.

4.3 Tracking positions

Tracking consists of recording the position of an object frame by frame:

  1. Select the point to track (center of the object)
  2. Click on the object in the first frame
  3. Advance to the next frame (button or arrow)
  4. Click on the new position of the object
  5. Repeat until the end of the motion

4.4 Automatically calculated quantities

From the tracked positions, FizziQ Web automatically calculates:

QuantitySymbolDescription
Position xx(t)Horizontal position as a function of time
Position yy(t)Vertical position as a function of time
Velocity vxvx(t)Horizontal component of the velocity
Velocity vyvy(t)Vertical component of the velocity
Velocityv(t)Magnitude of the velocity
Acceleration axax(t)Horizontal component of the acceleration
Acceleration ayay(t)Vertical component of the acceleration
Accelerationa(t)Magnitude of the acceleration
Angleθ(t)Angle of rotation (for rotational motion)
Kinetic energyEc(t)½mv² (if the mass is defined)
Potential energyEp(t)mgh (if the mass is defined)

4.5 Calculation methods

FizziQ Web offers several methods to calculate derivatives (velocity, acceleration):

  • Linear interpolation: simple method, suited to slow motion
  • Quadratic interpolation: more accurate method, reduces noise
  • Smoothing: attenuation of measurement noise

4.6 Examples of video experiments

  • Free fall: verify that a = g ≈ 9.8 m/s²
  • Projectile launch: study the trajectory, verify that vx = constant
  • Circular motion: analyze the rotation, calculate the centripetal acceleration
  • Oscillations: study a filmed pendulum or spring
  • Collisions: verify the conservation of momentum
Tips for good videos:
  • Camera fixed on a tripod
  • Uniform background contrasting with the object
  • Good lighting
  • Reference object visible for calibration
  • High frame rate (60 fps or more for fast motion)

5. Chronophotographs - Experiment

A chronophotograph is an image showing the successive positions of a moving object, superimposed on a single image. FizziQ Web lets you analyze these images and also create them from videos.

5.1 Importing a chronophotograph

  1. Click ExperimentChronophotographs
  2. Click Load an image
  3. Select your image file (PNG, JPG...)
  4. Calibrate the scale as for video
  5. Track the successive positions of the object

5.2 Creating a chronophotograph from a video

FizziQ Web can convert a video into a chronophotograph:

  1. Go to ToolsVideo → chronophotograph converter
  2. Load your video
  3. Select the time interval between frames
  4. Choose the number of frames to superimpose
  5. Export the resulting image

5.3 Kinematic analysis

Analyzing a chronophotograph gives the same quantities as video analysis:

  • Positions x(t) and y(t)
  • Velocities vx(t) and vy(t)
  • Accelerations ax(t) and ay(t)
  • Trajectory in the (x, y) plane
Advantage of chronophotographs: They allow you to instantly visualize the entire motion and easily identify areas of acceleration or slowing down.

5.4 Examples of chronophotographs

  • Ball in free fall: increasing spacing (acceleration)
  • Uniform motion: constant spacing
  • Projectile: visible parabola
  • Bounce: analysis of the phases before and after the impact

6. Physics simulations - Experiment

FizziQ Web offers eight interactive simulations that generate data usable in the experiment notebook. Each simulation lets you place virtual sensors and record measurements in real time.

6.1 Pendulum simulation

Objective: Study the oscillatory motion of a simple pendulum.

Parameters

ParameterRangeDefault
Pendulum length0.2 - 5.0 m2.0 m
Initial angle5° - 85°30°

Measurable quantities

  • Tangential acceleration: at = -g sin(θ)
  • Centripetal acceleration: an = L ω²
  • Angle θ as a function of time
  • Angular velocity ω
  • Kinetic and potential energy

Usage

  1. Set the length and the initial angle
  2. Place the desired virtual sensors
  3. Click REC then START to record
  4. Click STOP to stop
  5. The data is automatically added to the notebook
Suggested activity: Verify the period formula T = 2π√(L/g) by measuring the period for different lengths.

6.2 Spring oscillator simulation

Objective: Study the oscillations of a mass-spring system.

Parameters

ParameterRangeDefault
Spring stiffness (k)1 - 100 N/m20 N/m
Mass0.1 - 5.0 kg0.5 kg
Initial amplitude0.05 - 1.0 m0.3 m
Damping0 - 2.0 N.s/m0

Measurable quantities

  • Position (elongation) x
  • Velocity dx/dt
  • Acceleration a = -(k/m)x - (b/m)v
  • Kinetic energy and elastic potential energy
Suggested activity: Discover the relationship T = 2π√(m/k) by varying the mass and the stiffness.

6.3 Ballistics simulation

Objective: Study the trajectory of a projectile.

Parameters

ParameterRangeDefault
Initial velocity (v₀)10 - 100 m/s50 m/s
Launch angle (α)15° - 85°45°
Projectile mass0.1 - 10 kg1 kg
Air resistanceToggleableDisabled

Equations (without friction)

  • Horizontal position: x(t) = v₀ cos(α) t
  • Vertical position: y(t) = v₀ sin(α) t - ½ g t²
  • Maximum range at 45°: R = v₀² sin(2α) / g

With air resistance

Enable drag to observe:

  • Reduction of the range
  • Asymmetry of the trajectory
  • Dependence on the mass
Suggested activity: Determine the optimal angle for maximum range, with and without air resistance.

6.4 Electrical circuit simulation

Objective: Build and analyze electrical circuits.

Available components

  • Sources: battery (DC voltage), AC generator (variable voltage)
  • Elements: wires, resistors, lamps, switches, diodes
  • Instruments: ammeter (in series), voltmeter (in parallel)

Building a circuit

  1. Click a component in the toolbar
  2. Move it into the work area
  3. Connect the terminals by dragging them
  4. The circuit works as soon as it is closed
Ohm's law: Verify that U = R × I by measuring voltage and current with different resistors.

6.5 Inclined plane simulation

Objective: Study uniformly accelerated rectilinear motion.

Parameters

ParameterRangeDefault
Angle of inclination5° - 90°30°
Distance to travel1 - 10 m10 m
Coefficient of friction0 - 10

Physics

  • Acceleration: a = g sin(θ) - μ g cos(θ)
  • At 90°: motion = free fall
  • Galileo's principle: slow down free fall to observe it better

6.6 Waves on a lake simulation

Objective: Study the propagation of waves on the surface of water.

Waves on a lake simulation - FizziQ Web
Wave simulation with source and floats

Parameters

ParameterRangeDefault
Frequency0.1 - 5 Hz1 Hz
Amplitude1 - 100 cm100 cm
Propagation speed0.5 - 5 m/s2 m/s

Features

  • Source: generates the waves
  • Floats: measure the height of the water at their position
  • Table mode: displays the float data
  • Float animation: individual control of the motion

Observable phenomena

  • Circular propagation of waves
  • Relationship λ = v / f (wavelength = speed / frequency)
  • Phase shift between two points
  • Interference (with several sources)

6.7 Ideal gas simulation

Objective: Study the laws of ideal gases.

Parameters

ParameterDescription
VolumeVolume of the container (adjustable with a piston)
TemperatureTemperature of the gas
Number of particlesAmount of substance

Verifiable laws

  • Boyle-Mariotte's law: PV = constant (at constant T)
  • Gay-Lussac's law: P/T = constant (at constant V)
  • Charles's law: V/T = constant (at constant P)
  • Equation of state: PV = nRT

6.8 Centrifuge simulation

Objective: Study circular motion and centrifugal forces.

Measurable quantities

  • Angular velocity ω
  • Centripetal acceleration ac = ω²R
  • Apparent centrifugal force F = mω²R
  • Rotation period T = 2π/ω
Suggested activity: Study the relationship between the rotation speed and the felt acceleration.

7. External sensors - Experiment

FizziQ Web lets you connect external sensors to take real physical measurements. Two options are available to you:

📦

FizziQ Connect

Plug-and-play box, instant connection

🔧

Microcontroller

Arduino, micro:bit, ESP32... (see Appendix)

FizziQ Connect is the simplest solution: plug in the sensors, connect the box, and the measurements appear instantly. No programming required.

For microcontrollers (Arduino, micro:bit, ESP32...), see the Appendix: Connecting microcontrollers, which details the data format and code examples.

7.1 FizziQ Connect: overview

FizziQ Connect is a data acquisition box (computer-assisted experimentation) that lets you connect external sensors to FizziQ Web. Based on the ESP32 microcontroller, it uses standard Grove sensors.

7.2 Compatible sensors

TypeSensors
TemperatureTemperature probe, thermocouple
PressureAtmospheric pressure sensor, manometer
LightLight meter, UV sensor
Air qualityCO2 sensor, particle sensor
DistanceUltrasonic sensor, infrared sensor
ElectricityVoltage probe, current probe
AnalogAny analog sensor (including those built by students)

7.3 Bluetooth connection

Advantages: wireless, mobility, field measurements.

Browser required: Chrome 79+ or Edge 79+ only. Firefox and Safari do not support Web Bluetooth.

Connection steps

  1. Turn on FizziQ Connect and check that Bluetooth is enabled
  2. Open FizziQ Web in Chrome or Edge
  3. Click ExperimentExternal sensors
  4. Click Bluetooth
  5. Select your box from the list
  6. Click Pair
  7. The detected sensors appear automatically

7.4 USB connection

Advantages: stable connection, long-duration measurements, no battery.

Important: Close all applications using the serial port (Arduino IDE, PlatformIO, Putty...) before connecting.

Connection steps

  1. Turn on FizziQ Connect
  2. Connect it to the computer with a data USB-C cable
  3. Open FizziQ Web
  4. Click ExperimentExternal sensors
  5. Click USB Serial
  6. Select the corresponding port
  7. Click Connect

7.5 Recording measurements

  1. Once connected, select the sensors to use
  2. Click REC to start recording
  3. The data is displayed in real time
  4. Click STOP to stop
  5. The data is added to the experiment notebook
Photosynthesis experiment with FizziQ Connect
Example experiment: measuring photosynthesis with a CO2 sensor

7.6 Connection troubleshooting

ProblemSolution
Bluetooth window does not openUse Chrome or Edge, check HTTPS
FizziQ Connect does not appearCheck that it is turned on and within range (~10m)
Connection failsRestart the box, reload the page
No data after connectingCheck that the sensors are plugged in
USB port not detectedClose Arduino IDE and other serial apps
USB cable does not workUse a data cable, not just a charging cable
Best practices:
  • Charge the box before the session
  • Test the connection before the students arrive
  • Use a quality USB cable (data cable)
  • Check the automatic recognition of the sensors

8. Experiment notebook - Analyze

8.1 Overview

The experiment notebook is the central space where you organize your data, graphs, and observations. All measurements (audio, video, simulations, sensors) are automatically added to it.

FizziQ Web experiment notebook
Experiment notebook with observations and graphs

8.2 Structure of the notebook

The notebook is organized into numbered observations:

  • Each observation can contain data, graphs, images, and text
  • Observations can be reordered by drag-and-drop
  • Click + Add to insert an observation into the document

8.3 Content types

  • Data tables: raw measurement data
  • Graphs: visualization of relationships between quantities
  • Images: screenshots, photos, spectrograms
  • Text: comments, analyses, conclusions
  • Formulas: mathematical equations (see document editor)

8.4 Working with data

  • Variable selection: choose which columns to display
  • Calculated columns: add derived quantities (formulas)
  • Sorting and filtering: organize the data
  • Copy-paste: to Excel, Google Sheets...

8.5 Graphs

Graphs are generated automatically from the data:

  • Curves: time evolution, relationships between quantities
  • Scatter plots: discrete data
  • Histograms: statistical distribution

Graph options

  • Selection of the X and Y axes
  • Linear or logarithmic scale
  • Adding trend lines (modeling)
  • Legend and title

8.6 Modeling and curve fitting

FizziQ Web lets you fit mathematical models to the data:

ModelEquationUse
Lineary = ax + bUniform motion, Ohm's law
Quadraticy = ax² + bx + cFree fall, projectile
Exponentialy = a·ebxRadioactive decay, RC
Sinusoidaly = A·sin(ωt + φ)Oscillations, waves
Powery = a·xnPower laws
Tip: The fitted equation is displayed with its parameters, allowing you to verify physical laws.

9. Tables and graphs - Analyze

Captured data is represented as tables. Each table contains columns called quantities (time, distance, velocity...) and lets you view, edit, or enrich the experimental data.

Possibilities: View the data, add or delete rows, create calculated columns (formulas), define units, generate graphs with interpolation, export to CSV or to Python.

9.1 Accessing tables

Table in the experiment notebook:

Each time you capture data (audio analysis, video, simulation, external sensor...), a table is automatically created in the experiment notebook. You can open it to view and edit the data.

Create a blank table:

  1. Open your experiment notebook
  2. Click +Data table
  3. Enter your data manually

9.2 Quantities (columns)

Each column represents a quantity with:

  • Name: e.g. Time, Distance, Velocity
  • Unit (optional): in parentheses (m, s, m/s...)
  • Type: manual entry or calculated
  • Decimals: 0 to 6 for the display

Create a quantity: Click + new quantity to the right of the columns.

9.3 Entering data

Accepted formats:

  • Whole numbers: 42, -15
  • Decimals: 3.14 or 3,14 (comma converted automatically)
  • Scientific notation: 1.5e-3, 6.02e23

Navigation: Tab (right), Shift+Tab (left), Enter (confirm and move down), Esc (cancel).

9.4 Formulas

All formulas begin with = and use column names as variables.

Operators

OperatorExample
+ - * /=Distance/Time
^ (power)=v^2
Implicit multiplication=0.5mv² is equivalent to =0.5*m*v^2

Mathematical functions

FunctionDescriptionExample
sin(x), cos(x), tan(x)Trigonometry (radians)=sin(angle)
asin(x), acos(x), atan(x)Inverse functions=atan(slope)
sqrt(x)Square root=sqrt(distance)
ln(x), log(x)Natural and base-10 logarithms=ln(concentration)
exp(x)Exponential e^x=exp(-t/tau)
abs(x)Absolute value=abs(delta)

Constants: pi (3.14159...), e (2.71828...)

Statistical functions

FunctionDescription
somme(column) or sum(column)Sum of the entire column
moyenne(column) or average(column)Mean of the column
ecartype(column) or stdev(column)Standard deviation of the column

Differentiation functions

FunctionDescriptionExample
diff(y, x)First derivative dy/dx=diff(position, time) → velocity
diff2(y, x)Second derivative d²y/dx²=diff2(position, time) → acceleration

Note: the first and last rows display #N/A (not enough points).

Reference to other rows

FunctionDescription
prec(column) or prev(column)Value of the previous row
suiv(column) or next(column)Value of the next row

Example: =position - prec(position) calculates the difference between two measurements.

9.5 Graphs

Click the graph icon in the toolbar to switch between table and graph.

Configuration (3 tabs)

Data tab:

  • X axis: choose a column or "Index" (1, 2, 3...)
  • Y axes: add up to 5 curves

Display tab:

Marker typeDescription
Circles onlyPoints without lines (default)
Circles + linesConnected points
Lines onlyContinuous curve
InterpolationEquationUse
Lineary = ax + bLinear law, proportionality
Degree-2 polynomialy = ax² + bx + cFree fall, parabola
Degree-3 polynomialy = ax³ + bx² + cx + dComplex curves
Exponentialy = a × e^(bx)Radioactive decay, RC
Powery = a × x^bPower law

Scales tab: Automatic adjustment or manual scales (Min/Max).

9.6 Integration with Python

Define functions in the Python interpreter and use them in the tables:

# In Python
def energie_cinetique(m, v):
    return 0.5 * m * v * v

# In the table (column formula)
=energie_cinetique(mass, velocity)

9.7 Import/Export

  • CSV export: Export button → file with semicolon separator
  • CSV import: Open button → automatic format detection
  • Export to notebook: copies the table as a new observation
  • Graph export: PNG or insertion into the editor

9.8 Error messages

MessageMeaning
#N/AValue not available (normal for diff() at the edges)
#ERR:COLColumn not found (check the spelling)
#ERR:POINTSNot enough points for diff()
#ERR:VALEURCell does not contain a number

9.9 Keyboard shortcuts

ShortcutAction
Tab / Shift+TabNext / previous cell
EnterConfirm and move down
Ctrl+Z / Ctrl+YUndo / Redo (50 actions)
Ctrl+C / Ctrl+VCopy / Paste
DelClear the content

10. Final report - Share

The final report is the third pillar of FizziQ Web: Share. After capturing data (Experiment) and organizing and understanding it (Analyze), the student can now communicate their results by creating a complete scientific document.

The culmination of the scientific process: The final report lets the student summarize their research by integrating all the elements of their experiment notebook: data tables, graphs, photos of the setup, explanatory text, and mathematical formulas.

The FizziQ Web report editor is designed to be simple and effective. The student can:

  • Write formatted text (headings, bold, italic...)
  • Insert images and photos
  • Directly integrate the cards from their experiment notebook (tables and graphs)
  • Add mathematical formulas in LaTeX syntax
  • Export the report to PDF, Word, or image to share it with the teacher

Creating a report is done in two steps:

  1. Enrich the experiment notebook: add text and photos, organize the cards
  2. Create the final report: format it with the text editor, then export
FizziQ Web final report with LaTeX formulas
Final report with a graph, an image, and a mathematical formula

10.1 Enriching the experiment notebook

Before creating the final report, enrich your experiment notebook with explanatory text and photos.

Adding text to a card

  1. Open the relevant card in the experiment notebook
  2. Click Edit at the top right of the card
  3. Write your text in the text area
  4. Click Confirm to save
Tip: Use text to describe the protocol, explain the observations, or note important remarks.

Adding photos

  1. From the experiment notebook, click + Add an observation
  2. Select Photo
  3. Choose an image from your computer or take a photo with the webcam
  4. Optionally add descriptive text

Editing the title of a card

  1. Click the title of the card
  2. Edit the text
  3. Press Enter to confirm

Organizing the cards

The cards appear in the report in the order in which they are arranged in the notebook:

  • Move: drag a card to change its position
  • Delete: click the trash can to remove an unneeded card
  • Duplicate: create a copy to make variations

10.2 Accessing the report editor

  1. From the experiment notebook, click Edit the report
  2. Or go to ShareFinal report

10.3 Editor interface

The report editor consists of three areas:

  • Central area: the report being written
  • Left sidebar: three buttons to insert elements
  • Contextual toolbar: appears when text is selected

Sidebar: the 3 insertion buttons

ButtonFunctionDescription
Text Add a text area Inserts an empty text block that you can edit freely
Image Insert an image Opens a selector to choose an image from your computer
Observations Integrate from the notebook Displays the list of cards from the experiment notebook. Click a card to insert it into the report.
Automatic integration: When you insert an observation, the associated table, graph, and text are automatically included in the report.

10.4 Formatting the text

Select text to bring up the contextual toolbar:

  • Font size: from 8pt to 72pt
  • Bold (B): makes the text bold
  • Italic (I): makes the text italic
  • Alignment: left, center, right, justified
  • Formula (Σ): inserts a LaTeX mathematical formula

10.5 Inserting mathematical formulas

FizziQ Web supports LaTeX syntax for scientific formulas. Two insertion methods:

Method 1: Σ button (recommended)

  1. Place the cursor at the desired location
  2. Click the Σ button in the toolbar
  3. Enter your formula in LaTeX syntax
  4. Click Insert

Method 2: Direct syntax with $...$

Type directly in the text:

  • $E = mc^2$ for an inline formula
  • The formula is automatically converted into a mathematical rendering

Examples of LaTeX formulas

LaTeX codeResultUse
E = \frac{1}{2}mv^2E = ½mv²Kinetic energy
T = 2\pi\sqrt{\frac{L}{g}}T = 2π√(L/g)Pendulum period
\Delta t = t_2 - t_1Δt = t₂ - t₁Time interval
a = \frac{dv}{dt}a = dv/dtAcceleration
F = maF = maNewton's second law
v = \sqrt{v_x^2 + v_y^2}v = √(vx² + vy²)Magnitude of the velocity
\lambda = \frac{c}{f}λ = c/fWavelength
LaTeX tip: Use \frac{a}{b} for fractions, \sqrt{x} for square roots, x^2 for exponents, and x_i for subscripts.

10.6 Inserting images

  1. Click the Image button in the sidebar
  2. Select an image from your computer
  3. The image is inserted at the cursor position
  4. Resize it by dragging the corners if necessary

Useful image types:

  • Photos of the setup: experimental assembly
  • Screenshots: simulations, measurements
  • Diagrams: explanatory drawings
  • Chronophotographs: motion analysis

10.7 Integrating notebook observations

  1. Click the Observations button in the sidebar
  2. The list of all your notebook cards is displayed
  3. Click the desired card to insert it
  4. The table, graph, and text are automatically added
Dynamic link: If you edit a card in the experiment notebook, the changes will be reflected in the report (as long as you have not finalized it).

10.8 Structure of a scientific report

A quality scientific report generally includes:

SectionContent
TitleName of the experiment, date, author(s)
ObjectiveWhat you are trying to demonstrate or measure
ProtocolDescription of the setup and method (with photo/diagram)
MeasurementsRaw data tables (from the notebook)
GraphsVisual representation of the results
AnalysisInterpretation, calculations, curve fitting, formulas
UncertaintiesDiscussion of the sources of error
ConclusionValidation or not of the hypothesis, answer to the research question

10.9 Finalizing the report

Before exporting, you must finalize your report:

  1. Check that all the elements are correctly placed
  2. Reread the text to correct any errors
  3. Click the Finalize button
Warning: Once finalized, the report can no longer be edited. However, you can "unfinalize" it to make corrections if necessary.

10.10 Exporting the report

Once finalized, several export formats are available:

PDF export (recommended)

  1. Click Export to PDF
  2. The PDF file is generated and downloaded
  3. Ideal for printing and sharing by email

Word export (.docx)

  1. Click Export to Word
  2. A .docx file is generated
  3. You can open and edit it in Microsoft Word, Google Docs, or LibreOffice

FizziQ file (.fiz)

The .fiz file contains all of your work:

  • The complete experiment notebook
  • All the tables and graphs
  • The final report
  • The inserted images
  1. Go to ShareExport the file
  2. A .fiz file is downloaded
  3. This file can be re-imported into FizziQ Web to continue the work
Tip: Always keep a copy of the .fiz file as a backup of your work.

10.11 Frequently asked questions about the report

Can I edit the report after finalizing it?

Yes, click Unfinalize to return to edit mode. You will have to finalize again before you can export once more.

How do I change the order of the elements in the report?

Click an element and drag it to the desired position. You can also reorganize the cards in the experiment notebook before inserting them.

My LaTeX formula does not display correctly

Check the LaTeX syntax. Common errors are: missing braces, a forgotten backslash before commands (\frac, \sqrt...), or extra spaces.

Is the PDF export of good quality for printing?

Yes, the generated PDF is high-resolution, suitable for paper printing.

Can I insert several graphs from the same card?

When you insert an observation, all the associated graphs are automatically included. To insert only one, duplicate the card in the notebook and delete the unwanted graphs.

How do I add a caption below an image?

Insert a text area just below the image, reduce the font size, and center the text to create a caption.

Does the report keep the colors when exported?

Yes, the colors of the graphs, text, and images are preserved in the PDF and Word exports.

11. Exporting data - Share

FizziQ Web lets you export data at three levels:

  • A single observation: export an individual card from the notebook
  • The complete notebook: export the entire set of observations
  • The final report: export the summary document

11.1 Exporting an observation (notebook card)

From the experiment notebook, you can export each observation card individually:

  1. Open the observation card in the notebook
  2. Click the Export button
  3. Choose the export format

Formats available for an observation

FormatDescriptionUsage
CSV Spreadsheet file (.csv) Open the data in Excel, Google Sheets, LibreOffice
Python Python script (.py) Advanced analysis with numpy, matplotlib
Image PNG image Save a graph or a table
QR Code QR code containing the data Transfer the data to FizziQ on a smartphone
Exchange with FizziQ mobile: The QR Code lets you exchange data between FizziQ Web and the FizziQ app on a smartphone. Scan the QR Code with FizziQ mobile to retrieve the observation data.

Python export

The Python export generates a script containing:

  • The data as numpy arrays
  • The code to generate the graphs
  • The curve fits

11.2 Exporting the complete experiment notebook

To export the entire experiment notebook:

  1. Scroll all the way to the top of the experiment notebook
  2. Click the Export button
  3. Choose the export format

Formats available for the complete notebook

FormatDescriptionUsage
PDF PDF document with all the observations Printing, archiving. Layout options (number of columns...)
FizziQ file .fizziq file Complete backup, later re-import into FizziQ Web
Backup: The .fizziq file contains all of your work (observations, tables, graphs, text). Keep it so you can resume your work later or share it with a colleague.

11.3 Exporting the final report

To share all of your experimental work, use the final report:

  1. Create your report by integrating the notebook observations
  2. Click Finalize
  3. Choose the export format

Formats available for the report

FormatDescriptionUsage
PDF PDF document Printing, sending by email, archiving
Word Word document (.docx) Editing in Microsoft Word, Google Docs, LibreOffice

11.4 Export summary

LevelAccessFormats
A single observation Export button on a card CSV, Python, Image, QR Code
Complete notebook Export button at the top of the notebook PDF, FizziQ file
Final report Finalize then Export PDF, Word

11.5 Privacy

Local data: All files are stored locally on your computer. No account is required. Student data remains private and confidential.

12. Additional tools

12.1 Scientific calculator

A full calculator for quick computations:

  • Basic operations (+, -, ×, ÷)
  • Scientific functions (sin, cos, tan, log, exp...)
  • Physical constants (π, e, c, g...)
  • Calculation history

12.2 Sound synthesizer

Generate sounds at precise frequencies:

  • Frequency: 20 Hz - 20,000 Hz
  • Waveform: sine, square, triangle, sawtooth
  • Volume: adjustable
  • Beats: two simultaneous frequencies

Educational uses

  • Study of audible frequencies
  • Beat phenomenon
  • Tuning instruments
  • Doppler effect (with movement of the source)

12.3 Color synthesizer (RGB)

Mix the primary colors of light:

  • RGB sliders: Red, Green, Blue (0-255)
  • Display: resulting color
  • Codes: RGB and hexadecimal values

Educational uses

  • Additive color synthesis
  • Color coding in computing
  • Complementary colors

12.4 Video → chronophotograph converter

Transform a video into a chronophotographic image:

  1. Load a video
  2. Define the interval between frames
  3. Choose the number of frames to superimpose
  4. Adjust the transparency
  5. Export the resulting image

12.5 Python interpreter

A built-in Python environment for advanced analyses:

  • Code editor: syntax highlighting
  • Libraries: numpy, matplotlib available
  • Data import: access to the notebook data
  • Export: graphs and results to the notebook

Example script

import numpy as np
import matplotlib.pyplot as plt

# Notebook data
t = np.array([0, 0.1, 0.2, 0.3, 0.4])
y = np.array([0, 0.05, 0.20, 0.44, 0.78])

# Quadratic fit
coeffs = np.polyfit(t, y, 2)
print(f"Acceleration: {2*coeffs[0]:.2f} m/s²")

# Graph
plt.plot(t, y, 'o', label='Measurements')
t_fit = np.linspace(0, 0.4, 100)
y_fit = np.polyval(coeffs, t_fit)
plt.plot(t_fit, y_fit, '-', label='Fit')
plt.xlabel('Time (s)')
plt.ylabel('Position (m)')
plt.legend()
plt.show()

12.6 Screen sharing

Project FizziQ Web for the whole class:

  • Full-screen display
  • Presentation mode
  • Synchronization with the students' devices

13. Settings

The settings let you configure and customize FizziQ Web to suit your needs: language, accessible tools, advanced parameters, and configuration sharing.

13.1 Accessing the settings

In the left sidebar, click Settings. The settings home page presents three sections:

SectionDescription
LanguageChoose the interface language
CustomizationConfigure the accessible tools (restricted mode)
ParametersAdjust the advanced parameters

13.2 Changing the language

FizziQ Web is available in 21 languages: French, English, Spanish, Portuguese, German, Italian, Dutch, Swedish, Norwegian, Danish, Finnish, Hungarian, Estonian, Polish, Romanian, Ukrainian, Russian, Turkish, Arabic, Malagasy.

  1. In the settings, click Language
  2. Select the desired language from the list
  3. The interface updates automatically
System language: By default, FizziQ Web uses the language of your browser. To return to this automatic behavior, select "System language".

13.3 Customization (Restricted mode)

Restricted mode lets teachers simplify the interface for their students by displaying only the tools needed for an activity.

Two display modes

ModeDescription
Show allAll tools are accessible (default mode)
Custom modeOnly the selected tools are visible

Enabling custom mode

  1. In the settings, click Customization
  2. Click Custom mode
  3. Check the tools to make accessible
  4. Uncheck the tools to hide

Available tools

General: Experiment notebook, My notebooks, Final report

Experiment: Audio Analysis, Video Analysis, Chronophotograph, External Sensors, Data Entry

Simulations: Waves on a lake, Ballistics, Centrifuge, Pendulum, Inclined plane, Spring, Electrical circuit, Ideal gas, Optics, Three-body

Tools: Text editor, Spreadsheet, Python, Calculator, Sound synthesizer, Color synthesizer, Video chronophotograph

Example - Free-fall lab: Enable only Experiment notebook, Video Analysis, Spreadsheet, and Final report. Students only see these 4 tools and are not distracted by the other features.

13.4 Sharing a configuration

Teachers can generate a link so that their students access a custom configuration directly.

  1. Configure Custom mode with the desired tools
  2. Click Generate a link
  3. Copy the link with the Copy button
  4. Share the link with your students (email, learning platform, QR code...)

When a student opens the link, FizziQ Web loads automatically with the custom configuration.

QR Code tip: Generate the link, use an online QR code generator, then project or print the QR code for your students.

13.5 Advanced parameters

In the settings, click Parameters to access the advanced options.

Kinematic fitting (quadratic)

  • Enabled: Velocity and acceleration calculations use a quadratic interpolation over 3 points (recommended)
  • Disabled: Calculation by simple finite differences

USB connection speed (Baud Rate)

Configures the communication speed with external USB sensors (FizziQ Connect, Arduino).

Baud RateDescription
9600Very slow, very stable
57600Fairly fast
115200Fast (recommended, default value)
230400 - 921600Very fast to maximum

In case of problems: Corrupted data → lower the Baud Rate. Data too slow → raise the Baud Rate.

13.6 Configuring the AI assistant

FizziQ Web includes an AI assistant to help users. In the settings, expand the AI Chat section to configure:

ModelDescription
OpenAI GPT-5 miniFast, concise, efficient
Mistral AI SmallEuropean model, detailed and thorough

13.7 Saving the settings

Local storage: The settings are stored in your browser (localStorage). They persist between sessions on the same device. To reset them, clear the site data in your browser settings.

13.8 Typical configurations for teachers

Type of labRecommended tools
MechanicsVideo Analysis + Spreadsheet + Final report
AcousticsAudio Analysis + Spreadsheet + Final report
External sensorsExternal Sensors + Spreadsheet + Final report
SimulationA simulation + Spreadsheet + Final report

14. Troubleshooting

14.1 Common problems

ProblemSolution
The microphone does not workAllow access to the microphone in the browser settings (padlock in the address bar)
The camera does not workAllow access to the camera, close other applications using it
Bluetooth not availableUse Chrome or Edge, check that Bluetooth is enabled on the computer
The simulations are slowClose the other tabs, check the computer's performance
Empty PDF exportCheck that the notebook contains data, use the document editor
FizziQ Connect not detected over USBUse a data USB cable, close Arduino IDE
Video does not loadCheck the format (MP4, WebM recommended), file size
LaTeX formulas do not displayCheck the syntax, use the provided examples

14.2 Recommended browsers

For an optimal experience:

  • Chrome (version 89+): all features
  • Edge (version 89+): all features
  • Firefox: audio, video, simulations (no Bluetooth/USB)
  • Safari: audio, video, simulations (no Bluetooth/USB)

14.3 Chromebook

FizziQ Web works perfectly on a Chromebook:

  • Use Chrome (installed by default)
  • All features are available
  • Ideal for institutions equipped with Chromebooks

14.4 Performance

If the application is slow:

  • Close unnecessary tabs
  • Clear the browser cache
  • Reduce the size of the imported videos
  • Limit the number of points in the simulations

14.5 Support

For any question: [email protected]

Complete documentation: fizziq.org/post/documentation-fizziq-web

Appendix: Connecting microcontrollers

This appendix details how to program a microcontroller (Arduino, ESP32, micro:bit...) to transmit sensor measurements to FizziQ Web via USB. The microcontroller sends lines of text in a specific format that FizziQ Web recognizes automatically.

Principle: FizziQ Web does not read the sensor directly. It reads the lines of text sent by the microcontroller over the USB serial port. Your program must read the sensor value, convert it into a useful unit, and send a line in the correct format.

A.1 Compatible hardware

Any microcontroller with a USB port or a USB serial port:

  • Arduino: Uno, Nano, Mega
  • ESP32 or ESP8266
  • micro:bit
  • Teensy
  • Raspberry Pi Pico

A.2 USB format expected by FizziQ Web

Each line of data must follow this format:

FZ[CHANNEL]:[LABEL]:[VALUE]

Example messages

FZ0:tem:25.3
FZ0:hum:65.2
FZ1:pre:1013.25
FZ2:lum:450

Structure of a message

ElementDescriptionExample
FZMandatory prefixFZ
[CHANNEL]Channel number (0 to 5)0, 1, 2...
[LABEL]Abbreviation of the sensor typetem, hum, lum...
[VALUE]Measured numeric value25.3

A.3 Recognized sensor labels

FizziQ Web recognizes these standardized abbreviations (not case-sensitive):

LabelQuantityUnit
temTemperature°C
preAtmospheric pressurehPa
humRelative humidity%
lumBrightnesslux
accAccelerationm/s²
disDistancemm
sonProbe temperature°C
co2Carbon dioxideppm
o2Oxygen%
phpH-
uvUV indexUV
tvoTotal VOCsppb
infInfrared temperature°C
weiMasskg
tenElectrical voltageV
intElectrical currentA
magMagnetic fieldmT
pouPulsebpm
rotRotationrpm
nivSound leveldB
pm2PM2.5 particlesµg/m³
cvConductivitymS/cm
watPowerW
anAnalog signal-
extCustom measurement-

A.4 Using multiple channels

FizziQ Web handles 6 channels (0 to 5) to distinguish several sensors of the same type:

FZ0:tem:25.3    // Temperature sensor 1
FZ1:tem:22.1    // Temperature sensor 2
FZ2:tem:28.5    // Temperature sensor 3

A.5 Serial port configuration

For a stable USB connection:

  • Baud rate: 115200 (recommended)
  • Data bits: 8
  • Stop bit: 1
  • Parity: none
Important: Close the Arduino IDE serial monitor and any other application using the serial port before connecting FizziQ Web.

A.6 Programming an Arduino

First test with a fixed value

void setup() {
  Serial.begin(115200);
}

void loop() {
  Serial.println("FZ0:tem:25.3");
  delay(1000);
}

Example with a real sensor (DHT22)

#include <DHT.h>

#define DHTPIN 2
#define DHTTYPE DHT22

DHT dht(DHTPIN, DHTTYPE);

void setup() {
  Serial.begin(115200);
  dht.begin();
}

void loop() {
  float temp = dht.readTemperature();
  float hum = dht.readHumidity();

  if (!isnan(temp)) {
    Serial.print("FZ0:tem:");
    Serial.println(temp, 2);
  }
  delay(100);

  if (!isnan(hum)) {
    Serial.print("FZ0:hum:");
    Serial.println(hum, 1);
  }
  delay(400);
}

Example with multiple sensors

#define TEMP_PIN A0
#define LIGHT_PIN A1

void setup() {
  Serial.begin(115200);
}

void loop() {
  int rawTemp = analogRead(TEMP_PIN);
  int rawLight = analogRead(LIGHT_PIN);

  float temperature = rawTemp * (5.0 / 1023.0) * 100.0;
  float lux = map(rawLight, 0, 1023, 0, 1000);

  Serial.print("FZ0:tem:");
  Serial.println(temperature, 2);
  delay(100);

  Serial.print("FZ0:lum:");
  Serial.println(lux, 1);
  delay(400);
}

A.7 Programming an ESP32

#define TEMP_PIN 34
#define LIGHT_PIN 35

void setup() {
  Serial.begin(115200);
}

void loop() {
  int rawTemp = analogRead(TEMP_PIN);
  int rawLight = analogRead(LIGHT_PIN);

  float voltage = (rawTemp / 4095.0) * 3.3;
  float temperature = voltage * 100.0;
  float lux = map(rawLight, 0, 4095, 0, 1000);

  Serial.print("FZ0:tem:");
  Serial.println(temperature, 2);
  delay(100);

  Serial.print("FZ0:lum:");
  Serial.println(lux, 1);
  delay(400);
}

A.8 Programming a micro:bit

JavaScript (MakeCode)

basic.forever(function () {
    let temp = input.temperature()
    serial.writeLine("FZ0:tem:" + temp)
    basic.pause(100)

    let lum = input.lightLevel()
    serial.writeLine("FZ0:lum:" + lum)
    basic.pause(400)
})

Python (micro:bit)

from microbit import *

while True:
    print("FZ0:tem:" + str(temperature()))
    sleep(100)
    print("FZ0:lum:" + str(display.read_light_level() * 4))
    sleep(400)

A.9 Recommended sending frequency

IntervalQuality
500 - 1000 msIdeal for most uses
100 - 500 msAcceptable
< 100 msToo fast, risk of data loss
> 5000 msToo slow, choppy graph
Tip: Insert a delay of at least 50 ms between sending data to ensure it is processed correctly by FizziQ Web.

A.10 Connecting to FizziQ Web

  1. Plug the microcontroller into the computer with a data USB cable
  2. Upload your program (Arduino IDE, PlatformIO, MakeCode...)
  3. Close the programming environment
  4. Open FizziQ Web in Chrome or Edge
  5. Click ExperimentExternal sensors
  6. Click USB Serial
  7. Select the port corresponding to the microcontroller
  8. The detected sensors appear automatically

A.11 Microcontroller troubleshooting

ProblemPossible causesSolutions
No data appears Incorrect format, missing FZ prefix, incorrect baud rate Check the format, use Serial.println(), test with a fixed value
Inconsistent values Faulty conversion, uncalibrated sensor, electrical noise Reread the sensor documentation, check the wiring
Missing messages Sends too fast, serial buffer full Increase the sending interval, insert delays between data
USB port does not open Arduino IDE open, another application using the port Close all serial applications, change the USB cable
Microcontroller restarts Insufficient power supply, short circuit Check the power supply and the assembly

A.12 Activity example: weather station

Build a small weather station with a microcontroller and a few sensors:

  • Temperature sensor
  • Humidity sensor
  • Light sensor

The program sends:

FZ0:tem:23.4
FZ0:hum:58.1
FZ0:lum:420

In FizziQ Web, students can:

  • Visualize the measurements in real time
  • Record the data over a period of time
  • Plot evolution graphs
  • Compare different experimental conditions
  • Export the data for analysis
Debugging messages: Lines starting with # are ignored by FizziQ Web and can be used for debugging:
Serial.println("# Sensor initialized");
Serial.println("# ERROR: Sensor not found");