# Nominal for Simulink

Stream signals from a running Simulink model into a Nominal dataset.

The **Nominal Stream Sink** block writes the signals wired into it to a dataset while the model
runs. Each signal becomes a channel in the dataset. While the model runs, the block never waits
for the network: if sending falls behind, it drops rows rather than slowing the model, and says
how many at the end of the run.

The block’s **Mode** parameter chooses how data leaves the model. **Direct to Nominal** sends it
over HTTPS from the computer running the model, using an API key on that computer.
**Via proxy** sends it over UDP to `nmproxy`, a relay you run on another computer or the same
one, and the relay writes it to Nominal. The API key then lives on the relay. Use proxy mode
when the computer running the model shouldn’t hold an API key, or has no processing time to
spare for sending data.

Quickstart

Stream three signals from a new model into a dataset.

[Quickstart](https://dev.nominal.io/simulink/quickstart.md)

Stream through a proxy

Run `nmproxy` so the computer running the model needs no API key.

[Stream through a proxy](https://dev.nominal.io/simulink/guides/proxy.md)

Timing and dropped rows

How often the block writes, the time on each point, and what to do when rows are dropped.

[Timing and dropped rows](https://dev.nominal.io/simulink/guides/timing.md)

Run a campaign of simulations

Execute a model many times into one dataset, each execution tagged, starting at time zero, and
a run in Nominal.

[Run a campaign of simulations](https://dev.nominal.io/simulink/guides/campaigns.md)

Reference

Every parameter, message, relay setting and the frame protocol.

[Reference](https://dev.nominal.io/simulink/ref.md)
