Skip to content
tomlct2015Public

About

?? Visual block programming editor for education & game creation | Scratch alternative with AI assistant, Minecraft mod support, and 6 themes | ??????????,??AI???MC?????6???

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

230 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Objector

Visual Block Programming Editor — Build Unlimited Creativity with Blocks

Version License Platform

Objector is a Electron-based visual block programming editor that enables even beginners to create animations, games, and interactive programs. Not just a Scratch clone — it's a comprehensive evolution designed for professional developers.

🌐 Try Online · 📖 Blocks Guide · 📥 Download Latest


✨ Key Features

Feature Description
🧩 Visual Block Programming Drag-and-drop blocks with flow connections, parameter embedding, and C-type sub-code blocks
🤖 AI Assistant Built-in AI chat window supporting OpenAI / DeepSeek / Qwen and more — generate blocks from natural language
⚙️ Settings Panel + 6 Themes Default / Dark / Light / Solarized / Nord / Dracula, with custom CSS editor
👥 Collaboration Push progress, branch management, view members, share links (powered by Supabase)
⌨️ Command Line Standalone terminal with sprite / run / save commands
🐛 Professional Debugging Breakpoints, step-through execution, variable watch panel
🎨 12 Block Modules Events, Motion, Looks, Control, Operators, Variables, Functions, OOP, Lists, Sound, 3D, Sensing
📦 Multi-Format Export Standalone HTML files, project ZIP packages
🔍 Block Search + Multi-Select Ctrl+F to search blocks, Shift+click for multi-select batch operations
📖 Interactive Tutorial Built-in beginner tutorial with highlighted UI guidance
🌐 PWA Support Installable as PWA on Android devices
⛏️ Minecraft Mod Development Code generation for Bedrock, NetEase, and Java editions
💻 Code Programming Mode Python / C++ / JavaScript code editor
📊 Data Analysis Mode Python-like data analysis environment with charts and data processing

🎯 Creation Modes

Mode Description
🎮 Standard Classic block programming with 2D / 3D rendering
🎬 Advanced Godot-style professional editor with block and code dual modes
🧩 Extensions Create custom extension blocks
📊 Data Analysis Python-style data analysis environment
⛏️ MC Mod Dev Minecraft mod code generation
💻 Code Programming Python / C++ / JavaScript programming

📥 Download

Windows (x64)

Linux (x64)

See all releases for previous versions.

🚀 Quick Start

Run from Source

# Clone the repository
git clone https://github.com/tomlct2015/Objector.git
cd Objector

# Install dependencies
npm install

# Start the application
npm start

Build

# Windows (NSIS installer + ZIP portable)
npx electron-builder build --win nsis zip

# Linux (tar.gz archive)
npx electron-builder build --linux tar.gz

🏗️ Project Structure

Objector/
├── src/                    # Source code
│   ├── main.js             # Electron main process entry
│   ├── preload.js          # Preload script (IPC bridge)
│   ├── index.html          # Home page (project selection/creation)
│   ├── app.js              # Home page logic
│   ├── editor.html         # Editor page
│   ├── editor-app.js       # Editor entry point
│   ├── styles.css          # Global styles
│   ├── ai-window.html      # AI assistant window
│   ├── cmd-window.html     # Command line window
│   ├── core/               # Core modules
│   │   ├── editor-canvas.js        # Block canvas rendering
│   │   ├── block-defs.js           # Block definitions
│   │   ├── block-renderer.js       # Block drawing
│   │   ├── executor.js             # Block execution engine
│   │   ├── ai-assistant.js         # AI assistant
│   │   ├── collaboration-manager.js # Collaboration management
│   │   ├── history-manager.js      # Undo/Redo
│   │   ├── palette.js              # Block palette
│   │   ├── scene-graph.js          # Scene graph
│   │   ├── project-manager.js      # Project management
│   │   ├── tutorial-system.js      # Tutorial system
│   │   ├── sound-manager.js        # Sound management
│   │   ├── extension-manager.js    # Extension management
│   │   ├── minecraft-mod.js        # Minecraft mod support
│   │   └── ...
│   ├── stage/              # Stage modules
│   │   ├── stage-canvas.js # 2D stage rendering
│   │   ├── stage-3d.js     # 3D stage rendering (Three.js)
│   │   ├── stage-manager.js # Sprite management
│   │   └── sprite.js       # Sprite class
│   └── i18n/               # Internationalization
│       ├── zh-CN.js        # Chinese
│       └── en.js           # English
├── editor/                 # Runtime directory (copy of src)
├── tests/                  # Unit tests
├── electron-builder.json   # Build configuration
├── package.json
└── README.md

🧱 Block Data Structure

Objector stores blocks as JavaScript objects:

{
  id: "blk_abc123",                    // Unique block ID
  type: "control_repeat",             // Block type
  x: 100, y: 200,                     // Canvas coordinates
  params: { times: 10 },              // Parameter values
  flowIn: null,                       // Previous block in chain (null = chain start)
  flowOut: "blk_def456",              // Next block in chain (null = chain end)
  subBlocks: { body: "blk_sub" },     // C-type slot: sub-block entry point
  paramConnections: { steps: "blk_r" } // Parameter connections to reporter blocks
}

Key concepts:

  • flowOut / flowIn: Sequential execution chain — A.flowOut = B.id means A executes before B
  • subBlocks: C-type slots (e.g., body, then, else) — entry points for nested code blocks
  • paramConnections: Reporter/boolean blocks connected to parameter input slots

🤖 AI Assistant

The AI assistant supports a >>> command system for editor operations:

>>> sprite add "MySprite"    # Add a new sprite
>>> sprite list              # List all sprites
>>> run                      # Run the project
>>> save                     # Save the project

Available tool calls: generate_blocks, modify_blocks, manage_sprites, run_project, save_project, screenshot, fetch_url

🛠️ Tech Stack

Category Technology
Runtime Electron 43
2D Rendering Canvas 2D
3D Rendering Three.js
Code Editor CodeMirror 5
Charts Chart.js 4
Database Supabase (Community & Collaboration)
Build electron-builder
Compression JSZip + Archiver

📄 License

MIT License — Free and open source

🔗 Links

About

?? Visual block programming editor for education & game creation | Scratch alternative with AI assistant, Minecraft mod support, and 6 themes | ??????????,??AI???MC?????6???

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages