Launched this week
Topolines
Generate Topologic contours
141 followers
Generate Topologic contours
141 followers
Draw a zone, generate crisp topographic contour lines, and export print-ready SVG & HD PNG. Gradients, elevation taper and Figma-ready output.








Topolines
Hey Product Hunt! 👋
Topolines turns any real place on Earth into a clean topographic contour map. You pick a location on the map, it pulls the actual elevation data for that spot (SRTM 30m, or 10m GeoTIFF for finer terrain), and generates the contour lines from it. So the ridge you export is a real ridge, not a shape you drew.
I built it to solve a recurring friction in my own design work: getting vector topographic maps without opening heavy 3D software or rebuilding them by hand in a vector tool.
From there you can tweak contour density, line weights, the elevation taper and colors, then export as clean SVG or HD PNG, ready for Figma, web, or print.
Try it on somewhere you know well, that's when it clicks. I'm around all day for questions and feature requests 🙌
@alexis_oules Refreshing to see something on here that is not just AI Slop and solves an actual usecase. It's not in my wheelhouse but the demo video looks really cool! :) Good luck!!
Topolines
@niklas_fischer Thanks Niklas, that genuinely means a lot 🙏 I built it because I needed it for my own design work, so "solves an actual usecase" is the best compliment I could get today. Good luck with Narrify!
@alexis_oules congrats on the successful launch! Really nice to see a niche tool rank 12th of the day! And also thank you for wishing me luck with Narrify. Made me realize I still had that as a product flare, even though it's been long dead. Launched a niche app today though! So need all the luck I can get!
Love how clean the export looks and the Figma output is a huge plus for my workflow. One thing that would save me a ton of time is letting me save custom gradient presets tied to elevation ranges, so I can quickly reuse the same color scheme across multiple terrain projects without re-tuning each one.
Topolines
@fahrettinnfsk Saving presets is very doable and honestly should already exist. Quick question so I build the right version: do you reuse the same elevation ranges across projects, or re-anchor them per terrain? A 300m hill and a 3000m range need different stops, and that changes whether presets store absolute values or relative ones.
Topolines
@fahrettinnfsk Great one, saving a gradient preset and reusing it across projects (plus the Figma export) would make this feel like a real design workflow. Adding it to the roadmap 🙏
Adding a quick elevation labeling option directly on the contour lines would save a ton of time, especially for detailed terrain work where you need to identify specific altitudes at a glance without opening a separate legend.
Topolines
@ervahnkw It's on the list. The tricky part is placing labels along a curving path with a clean break behind them, done badly it reads worse than no labels at all. Not next week, but I want it.
Topolines
@ervahnkw Erva, you're right, inline elevation labels on the contours are the natural next step, especially for the "read it at a glance" use case a few people here have described. It's on the list. The tricky part is placing them cleanly so they don't clutter the poster look, but that's a good problem to solve. Thanks for the sharp suggestion 🙏
using real SRTM elevation data instead of just letting you doodle contour-looking shapes is what makes this actually useful for real design work, not just a pretty toy. how fine does the 10m GeoTIFF option get in practice - is that resolution available everywhere on Earth, or only for certain regions where that survey data exists?
Topolines
@omri_ben_shoham1 Quick honest answer on the 10m: the tiles are served as a global mosaic, so you can request the high-res mode anywhere on Earth and it'll pull data. But "10m" is the grid resolution, not a guarantee of survey fidelity everywhere. Under the hood it's a composite of the best public DEM available per region — so somewhere like the US (USGS 3DEP) or parts of Europe you get genuinely crisp 10m-class detail, while more remote areas fall back to coarser sources resampled onto the same grid. So the ceiling is 10m; what you actually get depends on how well-surveyed that patch of the planet is.
Practical takeaway: for most populated/mountainous regions people actually design posters of, it's a real, noticeable jump over the 30m SRTM baseline. If you have a specific location in mind, happy to tell you what the source looks like there.
Figma-ready export is the detail that'll get this used instead of just admired — most contour generators stop at a flat PNG and leave you rebuilding the layers yourself. Would love to see support for custom color stops beyond gradient presets, for teams matching an existing brand palette on maps/posters.
Topolines
@cosmicbunny Good news, that already ships. In the gradient editor you can add, move and delete stops, and each one opens a full colour picker, so brand palette matching works today (it's part of the Pro colour controls). The built-in presets are just starting points, not a limit. What's genuinely missing is saving your own gradient as a reusable preset across projects, which is the top request from today. That one I'm taking.
the fact that the contour taper responds to your drawn gradient rather than just snapping to preset levels is a really thoughtful touch. the svg export stays clean too, no weird node cleanup needed when I dropped it into figma.
Topolines
@ahinyu95 Thanks for the kind words on the export. Small correction, the taper doesn't follow the gradient, it's just an on/off that thins the lines with elevation. The gradient is separate.
Drew a quick mountain ridge and the contour output looked surprisingly clean for a browser tool. The Figma-ready SVG was the real treat, dropped straight into my layout without any cleanup.
Topolines
@sezerstenknpj Thanks! Just to be precise about what's happening: you draw the zone to pick the area, but the contours inside it come from real elevation data, so that ridge is an actual mountain rather than a shape. Glad the SVG dropped in clean.