raphlinus
maplibre-rs
raphlinus | maplibre-rs | |
---|---|---|
10 | 9 | |
- | 1,251 | |
- | 1.1% | |
- | 5.6 | |
- | 7 days ago | |
Rust | ||
- | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
raphlinus
-
Moving from Rust to C++
That's surprising, given the legendary sense of humor of the C++ community.
-
Announcing Bezier-rs: computational geometry algorithms for Bézier paths (seeking code review and boolean ops help)
I have some ideas on how to do boolean ops, some of which is written up in a blog post issue, and for which I have some code locally. In particular, the parabola estimate seems much more efficient than the usual fat line approach. I also have a sketch of quadratic/quadratic intersection in kurbo#230.
-
The Beauty of Bézier Curves
I am. It is relevant to the topic, and I cite it in the (now two year old) outline for the blog post I intend to write on the topic[1].
[1]: https://github.com/raphlinus/raphlinus.github.io/issues/40
-
Raph’s reflections and wishes for 2023
I rewrote that paragraph, as I realize it comes across too contentious. Thanks all for the feedback!
-
Rust GUI library for video playback?
To do video properly requires integration with the platform compositor. This is a fiendishly difficult problem, and I know of no serious effort to solve it. I have an outline of a blog post on the topic, and hope to publish it before too long.
-
Parallel curves of cubic Béziers
I am working on this problem too, and have an issue on my blog with an outline of the writeup. Stay tuned!
-
The Toxic Culture of Rejection in Computer Science
> PS, is your monoid work online, is it this https://arxiv.org/abs/2205.11659 ? I'm interested in monoids on GPUs.
Yes, the draft is on arXiv, and I have a blog post in the pipeline[1] explaining it to a more general audience.
And thanks for the other advice, I'll consider it!
[1] https://github.com/raphlinus/raphlinus.github.io/issues/66
-
Druid app for public transport data
The new xilem async architecture is designed to integrate much more finely with async. I have an outline of a blog post in the queue but am juggling a lot of things right now. Expect to see some updates, but not super soon.
-
Bevy and Dioxus are collaborating on stretch2: a revived UI layout algorithm
This is a hard problem and one of the hardest parts is figuring out scope. I have an upcoming blog post which will touch on some of the issues. In any case I'd love to see some progress on larger ecosystem collaboration.
-
Removing characters from strings faster with AVX-512
The short answer is no, but the long answer is that this is a very complex tradeoff space. Going forward, we may see more of these types of tasks moving to GPU, but for the moment it is generally not a good choice.
The GPU is incredible at raw throughput, and this particular problem can actually implemented fairly straightforwardly (it's a stream compaction, which in turn can be expressed in terms of prefix sum). However, where the GPU absolutely falls down is when you want to interleave CPU and GPU computations. To give round numbers, the roundtrip latency is on the order of 100µs, and even aside from that, the memcpy back and forth between host and device memory might actually be slower than just solving the problem on the CPU. So you only win when the strings are very large, again using round numbers about a megabyte.
Things change if you are able to pipeline a lot of useful computation on the GPU. This is an area of active research (including my own). Aaron Hsu has been doing groundbreaking work implementing an entire compiler on the GPU, and there's more recent work[1], implemented in Futhark, that suggests that that this approach is promising.
I have a paper in the pipeline that includes an extraordinarily high performance (~12G elements/s) GPU implementation of the parentheses matching problem, which is the heart of parsing. If anyone would like to review a draft and provide comments, please add a comment to the GitHub issue[2] I'm using to track this. It's due very soon and I'm on a tight timeline to get all the measurements done, so actionable suggestions on how to improve the text would be most welcome.
[1]: https://theses.liacs.nl/pdf/2020-2021-VoetterRobin.pdf
[2]: https://github.com/raphlinus/raphlinus.github.io/issues/66#i...
maplibre-rs
- maplibre-rs supports now basic text rendering and raster tiles!
-
Druid app for public transport data
The map uses a combination of immediate mode drawing and caching bitmaps to achieve panning and zooming for large numbers of paths and circles (routes and stops). This approach works fine and was easy to implement but has limitations. I'm hoping that Druids planned transition to using https://github.com/linebender/piet-gpu for drawing will help with making a performant map. https://github.com/maplibre/maplibre-rs is very inspiring and could provide a base for a future version of the app.
- Maplibre-Rs - Native maps for web, mobile and desktop
- Mapr: Native cross platform maps in Rust using WebGPU
-
Mapr: Native, cross platform map rendering library in Rust using WebGPU, from Maplibre.
Repo: https://github.com/maplibre/maplibre-rs
- Mapr: Native cross platform maps in Rust
- Published my first proper Rust project. It's a GPU-powered vector tile map rendering engine called maplibre-rs! Git-check it out!
What are some alternatives?
sprawl - A high performance Rust-powered layout library [Moved to: https://github.com/DioxusLabs/taffy]
gpuweb - Where the GPU for the Web work happens!
morphorm - A UI layout engine written in Rust
gtfs_manager - A GUI for viewing and editing GTFS data
Graphite - 2D raster & vector editor that melds traditional layers & tools with a modern node-based, non-destructive, procedural workflow.
rusty-dos - A Rust skeleton for an MS-DOS program for IBM compatibles and the PC-98, including some PC-98-specific functionality
dioxus - Fullstack GUI library for web, desktop, mobile, and more.