Telescope

Description

Telescope is an engine for efficiently creating meaningful visualizations

Details

Source
GitHub
Dialect
pharo (40% confidence)
License
MIT
Stars
32
Forks
9
Created
Dec. 23, 2016
Updated
Nov. 9, 2025
Topics
dynamic interactions interactive pharo telescope visualization visualizations

Categories

Games System / OS

README excerpt

# Telescope

Telescope is an engine for efficiently creating meaningful visualizations. The purpose is to help the user concentrate on the problem at hand rather than understanding the nitty-gritty of a drawing library. It does so by exposing to the user to a few concepts of the domain of visualization: nodes and their contents, layouts, interactions, and update mechanism. For example, the user does not have to worry about the creation of composite or simple nodes, the engine handles it. 

The user can create a model of visualization and then render it via a connector to a visualization framework.

**Note: Telescope is not usable by itself. It needs to come with at least one connector. You can find the list of connectors [later in this document](#connectors).**

# Documentation

## Version management 

This project use semantic versionning to define the releases. This mean that each stable release of the project will get associate a version number of the form `vX.Y.Z`. 

- **X** define the major version number
- **Y** define the minor version number 
- **Z** define the patch version number

When a release contains only bug fixes, the patch number increase. When the release contains new features backward compatibles, the minor version increase. When the release contains breaking changes, the major version increase. 

Thus, it should be safe to depend on a fixed major version and moving minor version of this project.

## Install Telescope

To install Telescope on your Pharo image you can just execute the following script:

```Smalltalk
    Metacello new
    	githubUser: 'TelescopeSt' project: 'Telescope' commitish: 'v2.x.x' path: 'src';
    	baseline: 'Telescope';
    	onWarningLog;
		onUpgrade: [ :e | e useIncoming ];
    	load
```

To add Telescope to your baseline just add this:

```Smalltalk
    spec
    	baseline: 'Telescope'
    	with: [ spec repository: 'github://TelescopeSt/Telescope:v2.x.x/src' ]
```

Note that you can replace the v2.x.x tag by a branch as #master or #development or a tag as #v1.0.0, #v1.? or #v1.0.x or a commit SHA.

## Connectors

As explained previously, Telescope works with connector to render visualizations. We will list here the official Telescope's connectors.

### CytoscapeJs

The CytoscapeJs connector of Telescope is available at: [https://github.com/TelescopeSt/TelescopeCytoscape](https://github.com/TelescopeSt/TelescopeCytoscape)

This connector works with Seaside in order to render web visualizations.

<img src="https://raw.githubusercontent.com/TelescopeSt/Telescope/development/resources/cytoscape.gif" style="width: 75%">

### Roassal

A Roassal connector was initialized but we did not get the manpower to maintain it. 

If someone wants to revive this connector, the last version we got was in this commit: [9fafc43ade53f8d16e40c82dffbccd2371f3851d](https://github.com/TelescopeSt/Telescope/commit/9fafc43ade53f8d16e40c82dffbccd2371f3851d)

## Examples

Examples can be found in the CytoscapeJs connector repository.

## Smalltalk versions compatibility

| Telescope version 	| Compatible Pharo versions 	|
|-------------------	|---------------------------	|
| v1.x.x	   		   	| Pharo 61, 70                 	|
| v2.x.x	   		   	| Pharo 61, 70, 80, 90         	|
| development      		| Pharo 61, 70, 80, 90         	|

## Contact

If you have any question or problem do not hesitate to open an issue or contact cyril (a) ferlicot.me or guillaume.larcheveque (a) gmail.com

← Back to results