Angular/Three.js Engineer to Fix Auto-Generated Junctions (Geometry/Rendering/Architecture Specialist)
Budget: $250 – $750 USD
This work is for an open-source project.
Stack: Angular 12 + Electron desktop, Three.js rendering, OpenDRIVE-style road model. Node 14; run with npm ci, tests under src/tests/**.
Scope: Stabilize junction creation/editing (manual tool + auto-generated junctions when splines intersect). Fix lane-level connection generation, road linking, and junction boundary/mesh updates.
Known gaps:
Implement proper unlinking: finish junction-road.service.ts::removeLinks so removing/detaching a junction clears predecessor/successor links and lane links without orphan roads.
Make auto junctions react to geometry edits: fill in auto-junction.ts::updateFromIntersections so junctions downgrade/upgrade when control points are added/removed (see x-junction.spec.ts expectations).
Improve lane pairing: restore distance-based exit selection in create-junction-with-single-connection.ts::findBestExit to get deterministic lane links (X/T junctions should yield 20 links in the provided specs).
Complete lifecycle signals: after spline removals/shortening, ensure junction meshes/boundaries and map counts stay in sync (spline-segment.service.ts + spline-manager.ts).
Auto-junction housekeeping: when disconnecting (automatic-junctions.ts), recompute boundaries/centroid and remove connecting-road meshes so visuals and counts match data.
Acceptance: all junction-related specs pass (tests/junctions, tests/spline, tests/connection), auto-generated junctions stay consistent when splines move/remove, no orphan links/meshes after deletion.
Codebase touch points: junction-manager.ts, services/junction/*, map/models/junctions/*, junction.factory.ts, tools/junction/*.
Required Skills
Angular 12 + TypeScript: comfortable with strict typing, services/modules, RxJS, and change detection patterns in large apps.
Three.js & WebGL: able to debug and extend custom BufferGeometry/mesh generation, bounding boxes, and scene graph updates.
Computational geometry & road networks: experience with splines (Bezier/Catmull), intersection detection, lane topology, and OpenDRIVE-like models (links, lane sections, junctions).
Automated testing: proficiency with Jasmine/Karma (unit) and Cypress (E2E); able to add regression specs like those in tests/junctions and tests/spline.
Debugging stateful maps: prior work on pathfinding/traffic sims or CAD/GIS-style editors; comfortable tracing predecessor/successor links and mesh lifecycles.
Communication: can explain math/algorithm changes clearly and propose acceptance criteria before coding.
Deliverables: PR with fixes + brief notes on algorithm changes and any new tests.
Link to repository: https://github.com/truevisionai/designer
Stack: Angular 12 + Electron desktop, Three.js rendering, OpenDRIVE-style road model. Node 14; run with npm ci, tests under src/tests/**.
Scope: Stabilize junction creation/editing (manual tool + auto-generated junctions when splines intersect). Fix lane-level connection generation, road linking, and junction boundary/mesh updates.
Known gaps:
Implement proper unlinking: finish junction-road.service.ts::removeLinks so removing/detaching a junction clears predecessor/successor links and lane links without orphan roads.
Make auto junctions react to geometry edits: fill in auto-junction.ts::updateFromIntersections so junctions downgrade/upgrade when control points are added/removed (see x-junction.spec.ts expectations).
Improve lane pairing: restore distance-based exit selection in create-junction-with-single-connection.ts::findBestExit to get deterministic lane links (X/T junctions should yield 20 links in the provided specs).
Complete lifecycle signals: after spline removals/shortening, ensure junction meshes/boundaries and map counts stay in sync (spline-segment.service.ts + spline-manager.ts).
Auto-junction housekeeping: when disconnecting (automatic-junctions.ts), recompute boundaries/centroid and remove connecting-road meshes so visuals and counts match data.
Acceptance: all junction-related specs pass (tests/junctions, tests/spline, tests/connection), auto-generated junctions stay consistent when splines move/remove, no orphan links/meshes after deletion.
Codebase touch points: junction-manager.ts, services/junction/*, map/models/junctions/*, junction.factory.ts, tools/junction/*.
Required Skills
Angular 12 + TypeScript: comfortable with strict typing, services/modules, RxJS, and change detection patterns in large apps.
Three.js & WebGL: able to debug and extend custom BufferGeometry/mesh generation, bounding boxes, and scene graph updates.
Computational geometry & road networks: experience with splines (Bezier/Catmull), intersection detection, lane topology, and OpenDRIVE-like models (links, lane sections, junctions).
Automated testing: proficiency with Jasmine/Karma (unit) and Cypress (E2E); able to add regression specs like those in tests/junctions and tests/spline.
Debugging stateful maps: prior work on pathfinding/traffic sims or CAD/GIS-style editors; comfortable tracing predecessor/successor links and mesh lifecycles.
Communication: can explain math/algorithm changes clearly and propose acceptance criteria before coding.
Deliverables: PR with fixes + brief notes on algorithm changes and any new tests.
Link to repository: https://github.com/truevisionai/designer
Related categories:
Algorithm
Software Architecture
Unity 3D
Game Development
Typescript
Unreal Engine
Simulation
Three.js
Angular