Skip to content

Commit 46216d5

Browse files
docs: refine README, contributing guidelines and fix citation metadata
Signed-off-by: arounamounchili <patouossa.mounchili@gmail.com>
1 parent 4e7264d commit 46216d5

3 files changed

Lines changed: 31 additions & 56 deletions

File tree

CITATION.cff

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,13 @@ keywords:
1616
- blender
1717
- urdf
1818
- xacro
19+
- srdf
1920
- ros
2021
- ros2
2122
- gazebo
2223
- importer
2324
- exporter
2425
- robot-modeling
26+
abstract: >
2527
LinkForge is **The Linter & Bridge for Robotics**. It provides a professional,
2628
validated workflow for robotics development in Blender by exporting hardened URDF and XACRO files.

CONTRIBUTING.md

Lines changed: 23 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -60,8 +60,8 @@ just install
6060
# Run tests to verify everything works
6161
just test
6262

63-
# Run linter
64-
just lint
63+
# Run linter and type checker
64+
just check
6565

6666
# Build extension
6767
just build
@@ -196,9 +196,9 @@ def test_link_creation():
196196
"""Test creating a link with valid parameters."""
197197
link = Link(
198198
name="test_link",
199-
visuals=[],
200-
collisions=[],
201-
inertial=Inertial(mass=1.0, inertia=InertiaTensor(...))
199+
initial_visuals=[],
200+
initial_collisions=[],
201+
inertial=Inertial(mass=1.0, inertia=InertiaTensor.zero())
202202
)
203203
assert link.name == "test_link"
204204
assert link.inertial.mass == 1.0
@@ -212,8 +212,16 @@ def test_sensor_roundtrip():
212212
# Create robot with sensor
213213
robot = Robot(
214214
name="test",
215-
links=[Link(...)],
216-
sensors=[Sensor(origin=Transform(xyz=(0.1, 0, 0.2)))]
215+
initial_links=[Link(name="base_link")],
216+
initial_sensors=[
217+
Sensor(
218+
name="test_camera",
219+
type=SensorType.CAMERA,
220+
link_name="base_link",
221+
camera_info=CameraInfo(),
222+
origin=Transform(xyz=(0.1, 0.0, 0.2))
223+
)
224+
]
217225
)
218226

219227
# Export to URDF
@@ -250,8 +258,8 @@ We prioritize testing with **real objects and environments** over mocking.
250258
### Debugging in Blender
251259

252260
```python
253-
import logging
254-
logger = logging.getLogger(__name__)
261+
from linkforge_core.logging_config import get_logger
262+
logger = get_logger(__name__)
255263
logger.error(f"Debug: {variable}")
256264

257265
# View in Blender Console (Window > Toggle System Console)
@@ -299,17 +307,7 @@ def parse_float(text, default=None):
299307

300308
### Linting Configuration
301309

302-
Our `ruff` configuration (in `pyproject.toml`):
303-
304-
```toml
305-
[tool.ruff]
306-
line-length = 100
307-
target-version = "py311"
308-
309-
[tool.ruff.lint]
310-
select = ["E", "F", "I", "N", "UP", "B", "A", "C4", "SIM"]
311-
ignore = ["E501", "N801"] # Line length (formatter) & naming convention
312-
```
310+
Our project rigorously enforces code quality using `ruff`. The definitive configuration (including line length, target version, and active rule sets) is maintained centrally in `pyproject.toml`. Please refer to the `[tool.ruff.lint]` section in that file for the current active and ignored rules.
313311

314312
### Pre-commit Hooks
315313

@@ -372,7 +370,7 @@ Use conventional commits:
372370
LinkForge uses **Release Please** to automate versioning and changelogs.
373371

374372
1. **Automation**: When code is merged into `main`, Release Please will automatically create (or update) a "Release PR".
375-
2. **Versioning**: This PR will contain a version bump in `blender_manifest.toml`, `CITATION.cff`, and an updated `CHANGELOG.md` based on your commit messages.
373+
2. **Versioning**: This PR will contain a version bump in `pyproject.toml`, `blender_manifest.toml`, `CITATION.cff`, and an updated `CHANGELOG.md` based on your commit messages.
376374
3. **Merging**: Once a maintainer merges this Release PR, a GitHub Tag and Release are automatically created.
377375
4. **Distribution**: The `release-please.yml` workflow will then build the extension `.zip` and attach it to the GitHub Release.
378376

@@ -392,7 +390,7 @@ To maintain LinkForge's status as a professional-grade **Linter & Bridge**, we p
392390

393391
### 1. The Blender Bridge (Foundation)
394392
LinkForge must remain compatible with the latest Blender LTS (Long Term Support) and the current stable release.
395-
- **Vigilance**: When a new Blender version (e.g., 5.0) enters Beta, we prioritize testing our `export_ops.py` to ensure no API breaking changes affect our users.
393+
- **Vigilance**: When a new Blender version (e.g., 6.0) enters Beta, we prioritize testing our Blender integration to ensure no API breaking changes affect our users.
396394

397395
### 2. URDF/XACRO Fidelity (Core)
398396
Our primary goal is 100% compliance with official specifications.
@@ -459,6 +457,8 @@ If you've contributed (code, docs, ideas, etc.), you can ask the bot to add you
459457
Replace `<contribution-type>` with one of the [valid contribution types](https://allcontributors.org/docs/en/emoji-key) (e.g., `code`, `doc`, `bug`, etc.).
460458

461459
### Academic Recognition
462-
For significant core contributions (new sensor systems, physics engine refinements, major architectural changes), we may invite you to be listed as a co-author in the `CITATION.cff` file and the official documentation, ensuring your work is properly attributed in academic research using LinkForge.
460+
For profound core contributions (e.g., advanced mathematical noise models, novel simulator integrations, or deep physics engine refinements), we may invite you to be listed as a co-author in the `CITATION.cff` file and the official documentation. This ensures your high-level domain expertise is properly attributed in future academic research using LinkForge.
461+
462+
*(Note: Standard features, basic sensor additions, and bug fixes are highly valued and will be celebrated via our standard Open Source contributors framework, but they do not automatically qualify for academic co-authorship).*
463463

464464
Thank you for contributing to LinkForge! 🚀

README.md

Lines changed: 6 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -130,8 +130,7 @@ Complete examples in `examples/` directory:
130130

131131
### Setup
132132
```bash
133-
# 1. Install 'just' (Command Runner)
134-
brew install just
133+
# 1. Install 'just' command runner (see Contributing Guide for OS-specific instructions)
135134

136135
# 2. Clone repository
137136
git clone https://github.com/arounamounchili/linkforge.git
@@ -141,34 +140,7 @@ cd linkforge
141140
just install
142141
```
143142

144-
### Testing
145-
```bash
146-
# Run all tests (Core + Blender)
147-
just test
148-
149-
# Run only core tests
150-
just test-core
151-
152-
# Run with coverage
153-
just coverage
154-
```
155-
156-
### Code Quality
157-
```bash
158-
# Run all checks (Lint + Types)
159-
just check
160-
161-
# Fix linting issues
162-
just fix
163-
```
164-
165-
### Building & Distribution
166-
To package LinkForge as a Blender extension:
167-
```bash
168-
# Build the production-ready .zip
169-
just build
170-
```
171-
The package will be created in the `dist/` directory.
143+
For complete instructions on testing, linting, and building the extension, please see our [Contributing Guide](CONTRIBUTING.md#development-workflow).
172144

173145
## 🎓 Learning Resources
174146

@@ -187,16 +159,17 @@ The package will be created in the `dist/` directory.
187159
- [ ] **v1.7.0**: **Mechanical Debugging** (Real-time IK & Collision Interference Validation).
188160
- [ ] **v2.0.0**: **Intelligence-Driven Rigging** (AI-assisted geometry analysis & Auto-Rigging).
189161

190-
## 🔭 Vision & Future
191-
For a deep dive into our long-term strategy, the **Digital Twin** philosophy, and our technical roadmap for AI and Kinematics, please read our [Project Vision](VISION.md).
192-
193162
## 🤝 Contributing
194163

195164
We welcome contributions! LinkForge is a community-driven project.
196165
- 🙋 Review our [Contributing Guide](CONTRIBUTING.md).
197166
- 🏗️ Check our [Architecture](ARCHITECTURE.md) to understand the internals.
198167
- 💬 Join the conversation on [GitHub Discussions](https://github.com/arounamounchili/linkforge/discussions).
199168

169+
## 📝 Citing LinkForge
170+
171+
If you use LinkForge in academic research, please cite it using the provided `CITATION.cff` file. You can find the citation format in the "Cite this repository" button on GitHub's sidebar.
172+
200173
## 📄 License
201174

202175
LinkForge follows a **Split-License Model** designed for both community-driven innovation and industrial-scale integration:

0 commit comments

Comments
 (0)