File Exchange

image thumbnail


version (49.1 KB) by Giampiero Campa
Multitrack 3D Simulink Scope


Updated 18 Dec 2017

View Version History

View License

Editor's Note: This file was selected as MATLAB Central Pick of the Week

This block is an enhanced version of the standard XYGraph Simulink block.
The standard XYGraph allows to plot the motion of ONE point in the XY plane. This block allows plotting the motion of SEVERAL points in the XYZ space.

In other words each point draws a line as it moves, so you end up having several lines in the plot instead of just one. Setting the camera position parameter to [0 0 1] reduces the plot to a classic 2D one.

This block is very useful when you have to compare the motion of a point versus a reference trajectory. See this blog entry for more information:

Run install_3dscope.m to install the scope. The file M2DScope_new.mdl contains a new version for R2014b and later, which was rewritten taking advantages of new graphic features. The file M2DScope_old.mdl contains the legacy version which is slower, has less features, and i think it's harder to use due to its coordinate input ordering, but should work for any version (5.3 and later).

Read the readme.txt file for more info.


Cite As

Giampiero Campa (2021). 3DScope (, MATLAB Central File Exchange. Retrieved .

Comments and Ratings (22)

Hakan Ertugrul

Giampiero Campa

I don't think it installs itself as a library, if i remember correctly. Just copy and paste the block from m3dscope_new.mdl

zeeshan hussain

how to get it from Simulink library browser, it shows getting installed but I can't find it any where?

Anton Bolotskikh

anteneh tadesse

how can i zoom and see the details of the result in the scope. my desired and actual trajectory looks same even i change the camera to 2d. thanks

Mussie Abrhaley

really it was helpful 10Q

Eslam Abouselima

Bao Nguyen

Thanks, Giampi. This is exactly what I am looking for. It works with R2016a.

Giampiero Campa

Ok, I think I've found a solution for 2014b and later. I should be able to fully test it and then post it within 2-3 weeks.


Hi Giampiero,

a rather sooner than later updated Version would be urgently needed here. We use it, to assume and check lookuptables vor heat exchangers (heat Transfer coefficient dependent from both volume flows).

Hi. Thank you for the file. I'm using 2014b and I get the XYZ Plot without any error, but It is supposed to display both the actual and desired trajectories at the same time, But what I see is just a blue trajectory. Also, I changed i to 1+2*(i-1) but nothing happened. How should I depict the desired trajectories by red and actual trajectories by blue?
Thanks for your prompt response

Giampiero Campa

Note that this scope does not work properly for 2014b and later versions. I will try to fix it at some point. If you need it sooner rather than later please let me know.


it is useful

Nestor Aguillon

Nestor Aguillon

Excuse my ignorance but.. how do I install this block? It could be helpful to me

Emanuele Ruffaldi

Really useful block. Thanks.


Hi, I put the block on top of my aircraft model. After trimming the aircraft, trimming needs to be terminated. I use the following command bu it doesn't work with the 3d scope.

>> feval(model,[],[],[],'term');

??? Error using ==> feval
--> Error evaluating 'StopFcn' callback of XYZ multiscope block (mask) 'Model/Subsystem/XYZ Graph'. Index exceeds
matrix dimensions.

Error in ==> end_trim at 14

nikhil santosh

This is just too neat!

H jr N

very useful

Richard pfisterer

There is a slight bug if there are more than 6 inputs.
To fix, change the end of line 170 that reads
or to be more general to

Sebas Nani

It's Work

Ridanto poetro

MATLAB Release Compatibility
Created with R11
Compatible with any release
Platform Compatibility
Windows macOS Linux

Inspired: 3D Stem for Simulink Block, Attractors

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!