Skip to main content

Real-time monitoring dashboard for Cascade Correlation Neural Network

Project description

Juniper




Juniper: Dynamic Neural Network Research Platform

Juniper is an AI/ML research platform for investigating dynamic neural network architectures and novel learning paradigms. The project emphasizes ground-up implementations from primary literature, enabling a more transparent exploration of fundamental algorithms.

Ecosystem Compatibility

This service is part of the Juniper ecosystem. Verified compatible versions:

juniper-data juniper-cascor juniper-canopy data-client cascor-client cascor-worker
0.4.x 0.3.x 0.2.x >=0.3.1 >=0.1.0 >=0.1.0

For full-stack Docker deployment and integration tests, see juniper-deploy.

Architecture

JuniperCanopy is the monitoring dashboard of the Juniper ecosystem. It depends on both JuniperData and JuniperCascor to display real-time training data.

┌─────────────────────┐     REST+WS      ┌──────────────────────┐
│   JuniperCanopy     │ ◄──────────────► │    JuniperCascor     │
│   Dashboard  ◄─here │                  │    Training Svc      │
│   Port 8050         │                  │    Port 8200         │
└──────────┬──────────┘                  └──────────┬───────────┘
           │ REST                                    │ REST
           ▼                                         ▼
┌──────────────────────────────────────────────────────────────┐
│                      JuniperData                              │
│                   Dataset Service  ·  Port 8100               │
└──────────────────────────────────────────────────────────────┘

Modes: Service mode (live CasCor backend via CASCOR_SERVICE_URL) or Demo mode (CASCOR_DEMO_MODE=1, no backend required).

Related Services

Service Relationship Notes
juniper-cascor Canopy monitors CasCor training Set CASCOR_SERVICE_URL to activate service mode
juniper-data Canopy fetches datasets for visualization Set JUNIPER_DATA_URL
juniper-cascor-client REST+WS client used internally by Canopy pip install juniper-cascor-client

Service Configuration

Variable Required Default Description
CASCOR_SERVICE_URL Yes* JuniperCascor URL — activates service mode
JUNIPER_DATA_URL No http://localhost:8100 JuniperData URL
CASCOR_DEMO_MODE No Set to 1 to run without a backend
CANOPY_HOST No 0.0.0.0 Listen address
CANOPY_PORT No 8050 Service port

* Required for service mode. Omit to fall back to demo mode.

Docker Deployment

# Full stack (recommended):
git clone https://github.com/pcalnon/juniper-deploy.git
cd juniper-deploy && docker compose up --build

# Standalone (service mode):
docker build -t juniper-canopy:latest .
docker run -p 8050:8050 \
  -e CASCOR_SERVICE_URL=http://host.docker.internal:8200 \
  -e JUNIPER_DATA_URL=http://host.docker.internal:8100 \
  juniper-canopy:latest

Active Research Components

juniper_cascor: Cascade Correlation Neural Network

  • Reference implementation from foundational research (Fahlman & Lebiere, 1990)
  • Designed for flexibility, modularity, and scalability
  • Enables investigation of constructive learning algorithms

juniper_canopy: Interactive Research Interface

  • Research-driven monitoring and visualization environment
  • Delivers novel observations through real-time network introspection
  • Transforms metrics into insights, accelerating experimental iteration

Research Philosophy

Juniper prioritizes transparency over convenience and understanding over abstraction. By implementing algorithms from first principles, the platform provides increased visibility into network behavior, enabling a more rigorous and more controlled investigation of learning dynamics and architectural innovations.


Quick Start Guide

Get Juniper Canopy running in 5 minutes

Version: 0.25.0
Status: ✅ Production Ready

Prerequisites

  • Python 3.11 or higher installed
  • Conda/Mamba (Miniforge3 or Miniconda)
  • Git for cloning the repository

Quick Start (Demo Mode)

Demo mode runs without the CasCor backend, simulating training data for development and testing.

# Clone the repository
git clone https://github.com/pcalnon/juniper-canopy.git
cd juniper-canopy

# Activate environment
conda activate JuniperCanopy

# Launch demo mode
./demo

Expected output:

INFO:     Uvicorn running on http://0.0.0.0:8050 (Press CTRL+C to quit)
Dash is running on http://127.0.0.1:8050/

Open Dashboard: Navigate to http://localhost:8050/dashboard/

You should see:

  • Training Metrics tab with live loss/accuracy plots
  • Network Topology tab with network visualization
  • Decision Boundary tab with boundary plot
  • Dataset tab with data points

Verify Installation

# Health check
curl http://localhost:8050/health

# Get current metrics
curl http://localhost:8050/api/metrics

# Get network topology
curl http://localhost:8050/api/topology

Production Mode

Connect to the real CasCor backend:

# Set backend path
export CASCOR_BACKEND_PATH=/path/to/cascor

# Disable demo mode
unset CASCOR_DEMO_MODE

# Launch
./try

For complete setup instructions, see docs/QUICK_START.md.


Documentation

Documentation Overview

Install and Configuration

API Documentation

Cascor Backend Documentation

CI/CD Documentation

Demo Mode Documentation

Testing Documentation


License

MIT License - See LICENSE for details.


Last Updated: January 29, 2026
Version: 0.25.0

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

juniper_canopy-0.3.0.tar.gz (101.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

juniper_canopy-0.3.0-py3-none-any.whl (118.2 kB view details)

Uploaded Python 3

File details

Details for the file juniper_canopy-0.3.0.tar.gz.

File metadata

  • Download URL: juniper_canopy-0.3.0.tar.gz
  • Upload date:
  • Size: 101.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for juniper_canopy-0.3.0.tar.gz
Algorithm Hash digest
SHA256 d206f2f2552911c4a03d0ab576b8c29916913bb35be12b6d6a1ccf0f2ed6289c
MD5 abf7204e2cac182bcc39af6c2d9892d5
BLAKE2b-256 fe0fec9f51409cdda3b57275c4ab2f5f12aa5dfef1481ddbe258b70c66b36259

See more details on using hashes here.

File details

Details for the file juniper_canopy-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: juniper_canopy-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 118.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for juniper_canopy-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ce2a0482f3d7a0a0bf82cbad7810a76b7fe3a4ffb00c57f27d1b5b3186d0f469
MD5 551ddc6f0b512187304b9bb816dc70a2
BLAKE2b-256 3f716be6843e03f544f6d12dcf5d39c36b57a9aead9ff982f63d8b15813857d7

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page