Hacktoberfest 2026: những issue maintainer đã đánh dấu cho tháng Mười, đang mở và phù hợp người mới. Xem issue Hacktoberfest

Feature request: bus / vector wires — render one edge for a contiguous port slice

Đang mở
#332 5 bình luận 0 reaction 0 người được giao Xem trên GitHub

Chưa có ai nhận issue này.

Đánh giá

Độ khó
5/5
Thời gian dự kiến
Hơn một tuần
Mức phù hợp với người mới
35/100
Loại issue
Tính năng
Độ rõ ràng
Khá rõ ràng
Mức độ hoạt động
Sôi nổi
Công nghệ
typescript
Lĩnh vực
frontend

Hướng nghiên cứu

Bắt đầu bằng cách lần theo việc kết xuất edge hiện có, hành vi kéo port-handle và cách xử lý nhiều edge trong frontend PathView. Xác định cách các slice liên tiếp, nhãn, tương tác thu gọn/mở rộng và thao tác kéo nhóm nên phù hợp với view model hiện tại mà không thay đổi graph .pvm, các đối tượng Connection hoặc Python được export. Hoàn tất khi các edge bus vẫn chỉ dùng để xem, có thể được mở rộng và thu gọn lại, đồng thời giữ nguyên đầu ra graph hiện có.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

enhancement frontend functionality
Description

Allow a set of edges connecting a contiguous port slice between two blocks to be rendered and
manipulated as a single bus edge:

  • Collapsed by default when a drag connects a slice, or when N parallel edges between the same
    block pair are detected — drawn as one thicker line, labelled with the slice (e.g. species[0:10]
    or a user-supplied name like exhaust).
  • Expandable on demand — click to fan out into the individual edges for inspection or to rewire
    one channel, then re-collapse.
  • Purely a view concern. The underlying .pvm graph, the Connection objects, and the exported
    Python would be unchanged — a bus is a grouping annotation over existing edges, not a new
    connection type. That keeps pathview convert output identical and means no PathSim-side change
    is needed.

Two smaller things that would compose well with it, though they're separable:

  • Drag from a port group (shift-drag, or drag from a block edge rather than a handle) to create the
    whole slice in one gesture, instead of ten drags.
  • A bus label on the edge — this overlaps with #8 (Add labels/annotations to Edges), so the two may
    want to share an implementation.
Problem

PathSim handles multi-variable signals well via port slices — Connection(a[0:10], b[0:10]) is
concise in Python and works exactly as you'd want. In PathView the same connection is 10 separate
edges
, because each port is an individual handle.

For anything with a chemical or multi-species signal this scales badly. We're building a fusion
fuel-cycle and balance-of-plant block library on PathSim, where every stream carries a molar-flow vector over a species basis, typically 10 species (H2, HD, HT, D2, DT, T2, He3, He4, N2, NT3), and users can extend the basis at runtime.
A ~25-block fuel cycle therefore draws roughly 250 edges for what a person reading the diagram
thinks of as ~25 pipes.

The Python model is fine. It's the diagram that stops being readable, which is a shame because the
diagram is the reason to use PathView at all.

This isn't fusion-specific — it applies to any chemistry, thermofluid, or power-system model where a
"signal" is naturally a vector.

Alternatives Considered

No response

Additional Context

No response

Ngôn ngữ chính
TypeScript
Star
91
Fork
14
Merge trung bình
4 phút
Pull request đã merge (30 ngày)
7

Hướng dẫn đóng góp

Chưa lập chỉ mục được hướng dẫn đóng góp cho kho mã nguồn này

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của pathsim/pathview

Tất cả issue của pathsim/pathview

Issue tương tự

Thêm issue về TypeScript

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.