1 điểm bởi GN⁺ 2024-10-21 | 1 bình luận | Chia sẻ qua WhatsApp
  • Đây là trình mô phỏng web dùng tính toán dựa trên vật lý để xác định cường độ tín hiệu WiFi thay đổi theo cấu trúc và vật liệu của ngôi nhà, giúp chọn vị trí đặt router
  • Mô phỏng được chạy cục bộ theo thời gian thực trên thiết bị của người dùng, và có thể thay đổi màu sắc hoặc tốc độ của mô phỏng nền
  • Có thể chạy mô phỏng mẫu áp dụng sơ đồ mặt bằng nhà ở thực tế cùng vật liệu tường và cửa sổ, đồng thời cung cấp cả video demo và tài liệu
  • Tự tính trực tiếp cách sóng điện từ di chuyển khi đi xuyên qua vật liệu, và cho thấy ví dụ sóng bị khúc xạ quanh các hộp văn bản
  • Vì là phương pháp có khối lượng tính toán lớn, nó dùng WebGPU để tận dụng GPU và mô phỏng nhanh hơn trong trình duyệt

Mô phỏng WiFi để chọn vị trí đặt router

  • WiFi Solver là một engine mô phỏng cho thấy tín hiệu WiFi từ điểm truy cập lan truyền như thế nào trong nhà
  • Tập trung vào việc tính cường độ tín hiệu WiFi trong nhà để xác định vị trí đặt router WiFi
  • Mọi mô phỏng đều được chạy trực tiếp trên thiết bị của người dùng
  • Có thể chạy ví dụ áp dụng mặt bằng nhà ở thực tế và các vật liệu chân thực cho tường và cửa sổ
  • Có thể xem một số tính năng qua video demo, và xem thêm thông tin chi tiết trong tài liệu
  • Có thể trải nghiệm trong một ngày, hoặc thanh toán một lần để có quyền truy cập vĩnh viễn

Tính toán vật lý và tận dụng WebGPU

  • WiFi Solver trực tiếp mô phỏng cách sóng điện từ di chuyển xuyên qua vật liệu với mức xấp xỉ tối thiểu
  • Khi cuộn trang, có thể thấy sóng bị khúc xạ quanh các hộp văn bản
  • Vì đây là cách tiếp cận tốn kém chi phí tính toán, nó sử dụng WebGPU để tận dụng GPU và tăng tốc mô phỏng
  • Ở phía dưới, có thể thêm nguồn mới vào mô phỏng nền
  • Có thể xem các công việc khác của tác giả trên blog

1 bình luận

 
GN⁺ 2024-10-21
Ý kiến trên Hacker News
  • Phần trực quan hóa rất đẹp, nhưng nó tập trung quá nhiều vào bản thân các gợn sóng hơn là mẫu phủ sóng thực tế với bước sóng 6–12,5 cm, nên kém hữu ích hơn các công cụ khác nếu dùng để kiểm tra vùng phủ sóng
    Dù vậy, với vai trò một dự án nghệ thuật thì khá thú vị, và nó cũng gợi nhớ đến projectM, một Milkdrop mã nguồn mở hỗ trợ WebGL https://github.com/projectM-visualizer/projectm/blob/master/..., cũng như Geisswerks, một trong những bản gốc https://www.geisswerks.com/
    Nếu thích những thứ kiểu này, có thể bạn cũng sẽ thích NestDrop, có tính năng trực quan hóa âm nhạc cho VJ và chiếu bên trong mái vòm https://nestimmersion.ca/nestdrop.php

    • Nếu vào một trong các mô phỏng mẫu, bạn có thể đổi phần trực quan hóa từ gợn sóng sang mật độ công suất trung bình theo thời gian; cái đó có lẽ gần với kiểu hiển thị vùng phủ sóng mà bạn muốn hơn
  • Có lỗi: nếu cứ bấm nút “add a new source”, mảng có kích thước tối đa cố định 128 sẽ bị tràn và màn hình sẽ hiện ngoại lệ JavaScript
    Ngoài ra, có thể chỉ xảy ra trên card AMD, nhưng các hộp văn bản khiến mô phỏng bị hỏng nếu cuộn theo một cách nhất định. Nếu Page Up/Down nhanh hoặc kéo xuống tận cuối rồi rung vị trí cuộn, dữ liệu lỗi sẽ lan ra làm toàn màn hình đầy nhiễu, đen hoặc trắng; còn nếu bật chế độ 3D thì thành một mớ polygon hỗn loạn

    • Vấn đề thứ hai cũng tái hiện được trên Apple M1, nên có vẻ không phải vấn đề riêng của card đồ họa
    • Vấn đề thứ hai có vẻ dễ xảy ra hơn khi tăng tốc độ mô phỏng
  • “Khi cuộn, bạn có thể thấy sóng bị khúc xạ quanh các hộp văn bản” — đúng là một tính năng ngầu dù chẳng hữu dụng mấy

  • Trước đây tôi từng muốn làm thứ tương tự với âm thanh. Ý tưởng là đặt các thiết bị kết hợp micro và loa ở những vị trí chiến lược để khử tiếng ồn chủ động trong phòng, chứ không phải bằng tai nghe
    Nghĩ thêm một chút thì thấy do giao thoa, có thể xuất hiện các vùng yên tĩnh và các vùng âm thanh bị nhân đôi, nên không lý tưởng nhưng vẫn thú vị; nghĩ tiếp nữa thì nhận ra phải xử lý trong không gian 3 chiều, khiến độ phức tạp cấu hình tăng lên rất nhiều. Nhìn hiệu ứng khúc xạ thì có vẻ điều tương tự cũng áp dụng ở đây

    • Nếu có “laser âm thanh”, có thể điều khiển các sóng đi vào một vùng dạng cột, để triệt tiêu âm thanh đi vào như một “ô che âm thanh”
      Tuy nhiên nó chỉ hoạt động với âm thanh thông thường có tính định hướng yếu, chẳng hạn loa ở xa, còn những thứ như tiếng người thì khó xóa. Nó có thể khá hữu ích trong câu lạc bộ để mỗi bàn vẫn trò chuyện bình thường được. Vấn đề là công nghệ liên quan hiện đang bị ràng buộc bởi bằng sáng chế; dù làm ra khá dễ, vẫn phải chờ bằng sáng chế hết hạn hoặc trả phí cấp phép
    • Nếu khả thi về mặt kỹ thuật, trông có vẻ cũng có thể trở thành kỳ lân tiếp theo
  • Phần trực quan hóa thật sự rất ấn tượng. Phần xử lý nhiều bộ phát và đoạn cuối khi cuộn làm tôi nhớ đến https://apenwarr.ca/beamlab/, nơi minh họa beamforming
    Cách dễ nhất để xem luồng trong demo này là tắt số 3 ở menu bên phải để chỉ còn 2 bộ phát, nhấn nút “r”, rồi nhấp hoặc kéo để xem quá trình tối ưu hóa chùm tia. Bạn cũng có thể xem thống kê độ lợi công suất thu ở bên phải
    Về mặt hiển thị thì demo này thú vị nhất, nhưng với người muốn tối ưu vị trí Wi-Fi trong nhà, gói miễn phí của Hamina có khả năng hữu ích hơn nhiều https://www.hamina.com/planner
    Nhược điểm là bắt tạo tài khoản, còn ưu điểm là nó cung cấp nhiều chế độ xem tóm tắt bám sát các chỉ số và tính năng Wi-Fi thông thường, thay vì quá chú trọng vào việc hiển thị chính bản thân mô phỏng sóng

    • Tôi vào đây vì kỳ vọng Hamina sẽ được nhắc đến. Tôi dùng nó trong công việc để lập kế hoạch triển khai không dây, và đó là phần mềm khá ổn
  • Tôi đã bấm liên kết thêm nguồn mới ở phía dưới quá nhiều lần và gặp Unexpected Application Error
    Lỗi cốt lõi là RangeError: offset is out of bounds, xảy ra trong Float32Array.set()Pi.makeUniformBuffer https://wifi-solver.com/dist/bundle-UKQ5A5W6.js:32:118833

  • Một dự án thú vị tương tự là https://cemsim.com/. Không phải do tôi làm

  • Tôi đã kỳ vọng ở đây là xử lý vô tuyến SDR, tức là chuyển nhiễu đọc từ GPIO qua pipe sang trình duyệt web để hiển thị hoạt động của mọi kênh cùng lúc

  • Khi chạy demo Waveguide Simulator trên Alienware M15 Ryzen Ed. R5, laptop phát ra tiếng rung the thé khá rõ
    Môi trường là RTX 3070, Windows 11 Pro, Chrome v129; ban đầu tôi tưởng là âm thanh từ loa, nhưng dù giảm âm lượng thì tiếng đó vẫn tiếp tục trong lúc trình mô phỏng đang chạy. Tôi không nghe thấy trong game hay các demo WebGPU khác, còn mô phỏng ngôi nhà thực tế lại tạo ra một mẫu âm thanh khác

    • Nghe giống coil whine. Đây là hiện tượng thường nghe thấy khi GPU hoạt động tối đa
      https://en.wikipedia.org/wiki/Electromagnetically_induced_ac...
    • Khả năng cao là âm phát ra từ mạch cấp nguồn của GPU. Nếu mẫu tiêu thụ điện có tần số nghe được, các linh kiện như cuộn cảm hoặc tụ điện có thể rung cơ học ở tần số đó và phát ra âm thanh
      Lý do không nghe thấy trong game có thể là âm thanh game lớn hơn, hoặc mẫu công suất không có tần số nghe được như vậy. Mạch cấp nguồn CPU cũng có thể gây hiện tượng tương tự, nhưng vì cái này dùng GPU nên quy về phía GPU là an toàn hơn
    • Có thể là coil whine hoặc tiếng rít tụ điện do GPU chạy ở tần số làm mới quá cao. Cách khắc phục dễ nhất là vào nvidia control panel và đặt giới hạn khung hình/giây cho trình duyệt hoặc trong thiết lập toàn cục ở khoảng gấp đôi tần số quét tối đa của màn hình
      Hiện tượng này khá phổ biến với tải làm việc trên 600fps
    • Tôi cũng nghe thấy tiếng tương tự trên 3070 bản desktop. Trên Mac M1 thì không nghe thấy
    • Trên GPU AMD Radeon Mobile của laptop, mỗi khi chạy code dùng GPU nhiều cũng có cùng tiếng coil whine đó
  • Tôi đang dùng router Wifi 6E, nên tò mò không biết ở đây 6GHz, 5GHz, 2,4GHz có hoạt động khác nhau một cách dễ thấy không. Tôi muốn biết tổng thể hình dạng có giống nhau không, hay tần số tạo ra khác biệt lớn

    • 6GHz và 5GHz gần như giống nhau, còn 5GHz và 2,4GHz sẽ khá khác vì hấp thụ và phản xạ hoạt động khác nhau