Live Demo: https://u33549.github.io/AgriFieldDesigner/
Agri Field Designer, tarım simülasyonları ve 3D ortamlar için model yerleştirmeyi kolaylaştıran web tabanlı bir araçtır. Gazebo/ROS uyumlu XML formatında çıktı üretir ve Three.js ile 3D önizleme sunar.
- Model URI ve İsimlendirme: Gazebo model URI'si ve benzersiz model isimleri tanımlama
- Boyut Kontrolü: X, Y, Z eksenlerinde model boyutlarını özelleştirme
- Pozisyon Ayarları: Başlangıç konumu ve grid düzeni için hassas koordinat girişi
- Çoklu Eksen Tekrarı: X, Y, Z eksenlerinde bağımsız tekrar sayıları
- Mesafe Ayarları: Modeller arası boşluk kontrolü
- Rastgele Sapma: Doğal görünüm için pozisyon varyasyonu
- Rotasyon Sapması: Roll, Pitch, Yaw eksenlerinde rastgele döndürme (0-360 derece)
- Gerçek Zamanlı Önizleme: Three.js ile interaktif 3D görünüm
- Kamera Kontrolleri:
- Sol tık + sürükle: Kamerayı döndürme
- Sağ tık / Shift + Sol tık: Kamerayı kaydırma
- Scroll: Yakınlaştırma/Uzaklaştırma
- Dinamik Viewport: Responsive tasarım ve tam ekran destek
- XML Formatı: Gazebo/ROS uyumlu
<include>etiketleri - Tek Tık Kopyalama: XML çıktısını panoya kopyalama
- Otomatik Güncelleme: Parametre değişikliklerinde anlık yeniden oluşturma
- Çoklu Dil Desteği: Türkçe ve İngilizce arayüz
- Kompakt Tasarım: Optimize edilmiş panel düzeni
- Hassas Kontroller: Step değerleri ile doğru giriş
- Projeyi indirin veya klonlayın
index.htmldosyasını bir web tarayıcısında açın- Internet bağlantısı gereklidir (Three.js CDN)
Tarayıcınızdan doğrudan erişim için web sunucusunda barındırın.
- Model Bilgilerini Girin: URI ve model adını tanımlayın
- Boyutları Ayarlayın: Model boyutlarını metre cinsinden girin
- Grid Parametrelerini Belirleyin:
- Başlangıç konumu
- Tekrar sayıları (her eksen için)
- Nesneler arası mesafe
- Varyasyon Ekleyin (Opsiyonel):
- Pozisyon sapması
- Rotasyon sapması
- Önizleme ve Oluşturma: 3D görünümü kontrol edin
- XML'i Kopyalayın: Çıktıyı simülasyon ortamınıza aktarın
Model Boyutları
- Genişlik (X), Yükseklik (Y), Derinlik (Z) metre cinsinden
- Minimum değer: 0.1m
Başlangıç Konumu
- Grid'in başlangıç noktası (X, Y, Z koordinatları)
- Negatif değerler desteklenir
Tekrar Miktarı
- Her eksende kaç model yerleştirileceği
- Minimum: 1, maksimum sınır yoktur
Mesafe (Aralık)
- İki model merkezi arasındaki mesafe (metre)
- Her eksen için bağımsız ayarlanabilir
Sapma Payı
- Her modele eklenen rastgele pozisyon varyasyonu
- 0 = düzenli grid, >0 = rastgele dağılım
- Değer metre cinsindendir (±sapma)
Rotasyon Sapması
- Roll, Pitch, Yaw için rastgele döndürme
- Derece cinsinden (0-360)
- 0 = rotasyon yok, 360 = tam rastgele
- Döndürme: Sol fare tuşu ile sürükleyin
- Kaydırma: Sağ fare tuşu veya Shift+Sol tuş ile sürükleyin
- Zoom: Fare tekerleği ile yakınlaştırın/uzaklaştırın
<include>
<uri>model://big_plant</uri>
<name>big_plant_01</name>
<pose>0.000000 0.000000 0.000000 0.000000 0.000000 0.000000</pose>
</include>Pose formatı: X Y Z Roll Pitch Yaw (pozisyon metre, açılar radyan)
- HTML5/CSS3: Arayüz ve layout
- Vanilla JavaScript: Uygulama mantığı
- Three.js (r128): 3D görselleştirme
- LocalStorage: Dil tercihi saklama
- Modern web tarayıcısı (Chrome, Firefox, Safari, Edge)
- WebGL desteği
- JavaScript etkin
- Çok sayıda model (>1000) 3D render performansını etkileyebilir
- XML çıktısı model sayısından bağımsız olarak hızlı üretilir
- Tarayıcı hafızası sınırlaması yoktur
AgriFieldDesigner/
├── index.html # Ana HTML dosyası
├── style.css # Stil tanımlamaları
├── script.js # Uygulama mantığı
├── README.md # Dokümantasyon
└── LICENSE # Lisans bilgisi
- Dil çevirileri:
script.jsiçindekitranslationsobjesi - Varsayılan değerler:
index.htmliçindeki inputvalueözellikleri - Renk teması:
style.cssiçindeki color değişkenleri
Bu proje MIT Lisansı altında lisanslanmıştır.
Hata bildirimleri, öneriler veya sorularınız için GitHub Issues kullanın.
Agri Field Designer is a web-based tool for simplifying model placement in agricultural simulations and 3D environments. It generates Gazebo/ROS compatible XML output with Three.js 3D preview.
- Model URI and Naming: Define Gazebo model URI and unique model names
- Size Control: Customize model dimensions on X, Y, Z axes
- Position Settings: Precise coordinate input for start position and grid layout
- Multi-axis Repetition: Independent repeat counts on X, Y, Z axes
- Distance Settings: Control spacing between models
- Random Deviation: Position variation for natural appearance
- Rotation Deviation: Random rotation on Roll, Pitch, Yaw axes (0-360 degrees)
- Real-time Preview: Interactive 3D view with Three.js
- Camera Controls:
- Left click + drag: Rotate camera
- Right click / Shift + Left click: Pan camera
- Scroll: Zoom in/out
- Dynamic Viewport: Responsive design with full-screen support
- XML Format: Gazebo/ROS compatible
<include>tags - One-click Copy: Copy XML output to clipboard
- Auto-update: Instant regeneration on parameter changes
- Multi-language Support: Turkish and English interface
- Compact Design: Optimized panel layout
- Precise Controls: Accurate input with step values
- Download or clone the project
- Open
index.htmlin a web browser - Internet connection required (Three.js CDN)
Host on a web server for direct browser access.
- Enter Model Information: Define URI and model name
- Set Dimensions: Enter model size in meters
- Configure Grid Parameters:
- Start position
- Repeat counts (per axis)
- Distance between objects
- Add Variation (Optional):
- Position deviation
- Rotation deviation
- Preview and Generate: Check 3D view
- Copy XML: Transfer output to your simulation environment
Model Size
- Width (X), Height (Y), Depth (Z) in meters
- Minimum value: 0.1m
Start Position
- Grid starting point (X, Y, Z coordinates)
- Negative values supported
Repeat Count
- Number of models to place on each axis
- Minimum: 1, no maximum limit
Distance (Gap)
- Distance between model centers (meters)
- Configurable independently per axis
Deviation
- Random position variation added to each model
- 0 = regular grid, >0 = random distribution
- Value in meters (±deviation)
Rotation Deviation
- Random rotation for Roll, Pitch, Yaw
- In degrees (0-360)
- 0 = no rotation, 360 = fully random
- Rotate: Drag with left mouse button
- Pan: Drag with right mouse button or Shift+Left
- Zoom: Use mouse wheel to zoom in/out
<include>
<uri>model://big_plant</uri>
<name>big_plant_01</name>
<pose>0.000000 0.000000 0.000000 0.000000 0.000000 0.000000</pose>
</include>Pose format: X Y Z Roll Pitch Yaw (position in meters, angles in radians)
- HTML5/CSS3: Interface and layout
- Vanilla JavaScript: Application logic
- Three.js (r128): 3D visualization
- LocalStorage: Language preference storage
- Modern web browser (Chrome, Firefox, Safari, Edge)
- WebGL support
- JavaScript enabled
- Large model counts (>1000) may affect 3D render performance
- XML output generation is fast regardless of model count
- No browser memory limitations
AgriFieldDesigner/
├── index.html # Main HTML file
├── style.css # Style definitions
├── script.js # Application logic
├── README.md # Documentation
└── LICENSE # License information
- Language translations:
translationsobject inscript.js - Default values: input
valueattributes inindex.html - Color theme: color values in
style.css
This project is licensed under the MIT License.
Use GitHub Issues for bug reports, suggestions, or questions. AgriFieldDesigner is a tool for creating virtual field layouts and designs for agricultural simulations. It allows users to define models, spacing, and positioning for field planning in Gazebo simulations.