PyRFDT Overview

Understanding the PyRFDT ecosystem and RFDT Editor

System Architecture

PyRFDT uses a client-server architecture that combines Python's flexibility with web-based visualization.

Python Backend

Scene management, simulation engine, and WebSocket server

  • • Scene & Object API
  • • Component System
  • • Simulation Control
  • • Data Processing

RFDT-Core

High-performance C++ ray tracing and EM simulation

  • • GPU Ray Tracing
  • • Wave Propagation
  • • Differentiable Rendering
  • • Physics Engine

Web Editor

Interactive web-based visual interface (auto-downloaded)

  • • 3D Visualization
  • • Property Editing
  • • Node Editor
  • • Results Viewer

Communication Flow

Python API
User Code
↔
WebSocket
Real-time Sync
↔
Web Editor
Visualization

Quick Start

Get up and running with PyRFDT in just a few lines of code:

1. Start Server & Editor

from rfdt import Scene, Server, ObjectFactory

# Create a scene
scene = Scene()

# Create and start the server
server = Server(scene=scene)
server.start(start_editor=True)  # Opens browser automatically

print("✓ Server running at http://localhost:8080")

First Time Setup

The first time you run this, the RFDT Editor will be automatically downloaded and built. This may take a few minutes.

2. Create Objects

# Create basic objects
cube = ObjectFactory.create_cube(
    position=[0, 0, 0],
    name="MyCube"
)

sphere = ObjectFactory.create_sphere(
    position=[3, 0, 0],
    name="MySphere"
)

# Add to scene
scene.add_object(cube)
scene.add_object(sphere)

# Objects appear in Editor immediately!

3. Modify Properties

# Access components using dictionary syntax
cube["Transform"].position = [1.0, 2.0, 3.0]
cube["Material"].color = [1.0, 0.5, 0.0, 1.0]  # Orange
cube["Material"].metalness = 0.8

# Add more components
cube.add_component("Light")
cube["Light"].intensity = 2.0

# Changes sync to Editor in real-time!