# JuliaCon 2025 Hackathon Ideas!

**URL:** <https://discourse.julialang.org/t/juliacon-2025-hackathon-ideas/130956>\
**Category:** 2025\
**Tags:** juliacon, hackathon\
**Created:** [July 22, 2025, 6:55pm UTC](https://discourse.julialang.org/t/juliacon-2025-hackathon-ideas/130956 "2025-07-22T18:55:57Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![TheCedarPrince](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/thecedarprince/32/17323_2.png) [@TheCedarPrince](https://discourse.julialang.org/u/TheCedarPrince)\
**Post date:** [July 22, 2025, 6:55pm UTC](https://discourse.julialang.org/t/juliacon-2025-hackathon-ideas/130956/1 "2025-07-22T18:55:57Z")

</div>

Hi folks!

I was thinking about JuliaCon 2025 Hackathon ideas for this Saturday! Figured I would start a general Discourse post so everyone can post and peruse ideas. Feel free to share ideas below!

~ tcp 🌳

---

<div class="post-metadata">

**Author:** ![giordano](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/giordano/32/2166_2.png) [@giordano](https://discourse.julialang.org/u/giordano)\
**Post date:** [July 22, 2025, 7:41pm UTC](https://discourse.julialang.org/t/juliacon-2025-hackathon-ideas/130956/2 "2025-07-22T19:41:46Z")

</div>

- ~~[Fix Julia on riscv64](https://github.com/JuliaLang/julia/issues/57569)~~ Already fixed!
- [Make BinaryBuilder work on Julia nightly](https://github.com/JuliaPackaging/JLLPrefixes.jl/issues/6)
- [Fix Enzyme issues in v1.11 with broadcasting](https://github.com/EnzymeAD/Enzyme.jl/issues/2397)

---

<div class="post-metadata">

**Author:** ![jbytecode](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jbytecode/32/17719_2.png) [@jbytecode](https://discourse.julialang.org/u/jbytecode)\
**Post date:** [July 22, 2025, 7:42pm UTC](https://discourse.julialang.org/t/juliacon-2025-hackathon-ideas/130956/3 "2025-07-22T19:42:08Z")

</div>

How about writing an initial JVM that runs HelloWorld.class?

---

<div class="post-metadata">

**Author:** ![adienes](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/adienes/32/37459_2.png) [@adienes](https://discourse.julialang.org/u/adienes)\
**Post date:** [July 22, 2025, 8:09pm UTC](https://discourse.julialang.org/t/juliacon-2025-hackathon-ideas/130956/4 "2025-07-22T20:09:07Z")

</div>

free perf improvement clout

> <https://github.com/JuliaLang/julia/issues/28993>
>
> \`\`\`
> julia\> using BenchmarkTools
> julia\> a=BitVector(rand(Bool,1\<\<10)); b=copy(a…);
> julia\> @btime ==($a,$b)
> 13.865 ns (0 allocations: 0 bytes)
> true
> julia\> @btime \<($a,$b)
> 2.252 μs (0 allocations: 0 bytes)
> false
> julia\> versioninfo()
> Julia Version 1.0.0
> Commit 5d4eaca0c9 (2018-08-08 20:58 UTC)
> \`\`\`
> The immediate problem is that lexicographic comparison falls back to \`AbstractArray\`. However, it is not clear how to write a fast (chunk-wise) comparison with the current layout, because the most significant bit of the bitvector (wrt julia's convention for vector comparison) is stored in the least significant bit of the unterlying UInt64 (wrt hardware integer comparison convention). See:
> \`\`\`
> julia\> a=BitVector(rand(Bool,1\<\<6));
> julia\> a
> 64-element BitArray{1}:
> true
> true
> false
> false
> true
> ⋮
> true
> false
> true
> false
> 
> julia\> bitstring(a.chunks\[1\])
> "0101011000101101010100010100000110100011100101000000101011110011"
> \`\`\`
> I'd propose to switch the layout of \`BitVector\` to match the machine convention. Then, one would need to also replace \`trailing\_zeros\` by \`leading\_zeros\` for iterations, but this has just as good hardware support. Or is there a strong reason for the current layout?

---

<div class="post-metadata">

**Author:** ![TheCedarPrince](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/thecedarprince/32/17323_2.png) [@TheCedarPrince](https://discourse.julialang.org/u/TheCedarPrince)\
**Post date:** [July 22, 2025, 8:35pm UTC](https://discourse.julialang.org/t/juliacon-2025-hackathon-ideas/130956/5 "2025-07-22T20:35:12Z")

</div>

## Hardware Hacking

- Figure out how to connect a Raspberry Pi to a DHT22 and receive signal output
- Develop a system to display components on an e-ink Dashboard ([Building a Julia-Powered E-Ink Dashboard: A Dev Log - #3 by TheCedarPrince](https://discourse.julialang.org/t/building-a-julia-powered-e-ink-dashboard-a-dev-log/130709/3))
- Document and add testing harness for WiringPi.jl
- Build CI configuration for Raspberry Pi + Julia

Oh I should mention that I brought all the hardware for this with me!

 ![image](https://global.discourse-cdn.com/julialang/original/3X/3/e/3eb26c2b2be9cc3b4cabb2819aa3d4140094e0e3.jpeg)

If you want to hack on this, just reach out! And if you want to borrow the machinery while we are here, happy to lend it to you as well – just get it back to me in time for the Hackathon! 😃

---

<div class="post-metadata">

**Author:** ![jpsamaroo](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jpsamaroo/32/46804_2.png) [@jpsamaroo](https://discourse.julialang.org/u/jpsamaroo)\
**Post date:** [July 24, 2025, 11:00am UTC](https://discourse.julialang.org/t/juliacon-2025-hackathon-ideas/130956/6 "2025-07-24T11:00:16Z")

</div>

Aside from possibly doing some hardware hacking (I also brought a RPi Pico 2W if anyone wants to try their hand at deeper embedded programming with Julia!), I’m planning to work on some of these:

- Adding device-side RNG to Metal.jl
- Propagate RNG through Dagger.jl tasks for reproducible parallel programs
- Implementing copyto between GPU and CPU views of arbitrary layouts, for Dagger.jl

---

<div class="post-metadata">

**Author:** ![hz-xiaxz](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/hz-xiaxz/32/209585_2.png) [@hz-xiaxz](https://discourse.julialang.org/u/hz-xiaxz)\
**Post date:** [July 24, 2025, 4:43pm UTC](https://discourse.julialang.org/t/juliacon-2025-hackathon-ideas/130956/7 "2025-07-24T16:43:44Z")

</div>

> [@jpsamaroo](#):
>
> Propagate RNG through [Dagger.jl](https://juliaregistries.github.io/General/packages/redirect_to_repo/Dagger) tasks for reproducible parallel programs

Hi, a quick question here, can’t this be realized by setting seeds identical to the MPI number?

---

<div class="post-metadata">

**Author:** ![RoyiAvital](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/royiavital/32/571_2.png) [@RoyiAvital](https://discourse.julialang.org/u/RoyiAvital)\
**Post date:** [July 25, 2025, 9:50am UTC](https://discourse.julialang.org/t/juliacon-2025-hackathon-ideas/130956/8 "2025-07-25T09:50:30Z")

</div>

New atoms in [`Convex.jl`](https://github.com/jump-dev/Convex.jl).  
Some ideas can come from the [atoms in `CVXPY`](https://www.cvxpy.org/functions/index.html).

---

<div class="post-metadata">

**Author:** ![lrnv](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/lrnv/32/19373_2.png) [@lrnv](https://discourse.julialang.org/u/lrnv)\
**Post date:** [July 25, 2025, 11:36am UTC](https://discourse.julialang.org/t/juliacon-2025-hackathon-ideas/130956/9 "2025-07-25T11:36:06Z")

</div>

I would love StatsModels.jl to reach 1.0, in particular if it solves its performances issues / inherent slowness

---

<div class="post-metadata">

**Author:** ![Anil\_Beniwal](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/anil_beniwal/32/217938_2.png) [@Anil\_Beniwal](https://discourse.julialang.org/u/Anil_Beniwal)\
**Post date:** [July 25, 2025, 5:28pm UTC](https://discourse.julialang.org/t/juliacon-2025-hackathon-ideas/130956/10 "2025-07-25T17:28:16Z")

</div>

Compiling Julia code small wasm modules using juliac and run without a jl runtime on top of wasm runtime.  
Why would I say anything else then what i want.😀

---

<div class="post-metadata">

**Author:** ![jling](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jling/32/212909_2.png) [@jling](https://discourse.julialang.org/u/jling)\
**Post date:** [July 25, 2025, 7:30pm UTC](https://discourse.julialang.org/t/juliacon-2025-hackathon-ideas/130956/11 "2025-07-25T19:30:25Z")

</div>

- Getting `juliac.jl` to emit header files together for better integration with other ecosystems that want to use Julia compiled `.so` as backend.
- Fix lowering of `@atomic` for floats on shared memory for Metal backend
- Getting TypstString to work as Makie.jl axis labels and text scatters
- Check speedup opportunity in EvoTrees.jl regarding GPU histogramming

---

<div class="post-metadata">

**Author:** ![brainandforce](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/brainandforce/32/211054_2.png) [@brainandforce](https://discourse.julialang.org/u/brainandforce)\
**Post date:** [July 25, 2025, 9:42pm UTC](https://discourse.julialang.org/t/juliacon-2025-hackathon-ideas/130956/12 "2025-07-25T21:42:38Z")

</div>

I’m looking for people who are interested in extending CliffordNumbers.jl to interoperate with Makie and provide convenient 2D and 3D plotting methods for projective and conformal geometric algebras. With this implemented, it’ll be really easy to plot arbitrary lines, planes, circles, and spheres and their meets/joins.

The code for this that I’ve already written lives in [this repo](https://github.com/brainandforce/CliffordNumbers-demo), and it shouldn’t be too hard to get this into a package extension. If you want a relatively simple introduction to computing with geometric algebra, this is it!

---

<div class="post-metadata">

**Author:** ![mbauman](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mbauman/32/31082_2.png) [@mbauman](https://discourse.julialang.org/u/mbauman)\
**Post date:** [July 26, 2025, 2:33am UTC](https://discourse.julialang.org/t/juliacon-2025-hackathon-ideas/130956/13 "2025-07-26T02:33:56Z")

</div>

I’ll be trying to chip away at more of the [pairwise reduction refactor (#58418)](https://github.com/JuliaLang/julia/pull/58418). Some concrete things to work on here include:

- Doing a coordinated merge with sparse arrays for some pre-cursors that were split out (julia#55628 + JuliaSparse/SparseArrays.jl#615).
- Brainstorming on the arrangement of the internals (and perhaps a real interface?) to help packages that were overloading internals before
- Improvements to the benchmarking and analysis/plotting
- Hunting for more optimizations and better rearrangements (that is, [Performance challenge: can you write a faster sum?](https://discourse.julialang.org/t/performance-challenge-can-you-write-a-faster-sum/130456))

---

<div class="post-metadata">

**Author:** ![jakobjpeters](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jakobjpeters/32/207797_2.png) [@jakobjpeters](https://discourse.julialang.org/u/jakobjpeters)\
**Post date:** [July 26, 2025, 2:38am UTC](https://discourse.julialang.org/t/juliacon-2025-hackathon-ideas/130956/14 "2025-07-26T02:38:16Z")

</div>

### Will do

- Release Typstry.jl version 0.6.0
- ~~Create issue about potentially missing concrete methods in system image~~ (as discussed with @NHDaly)
- ~~Create issue about some methods either not being cached or incorrect results from `Base.specializations`~~ (as discussed with @NHDaly)
  - See also [Code already inferred before @compile\_workload is not tagged for pre-compilation #58960](https://github.com/JuliaLang/julia/issues/58960)

- Create issue in Typst about how to extract their AST for use in Julia documentation generation
- ~~Discuss strings with~~ @ScottPJones

### Bonus

- Update MakieTeX.jl’s version of Typstry.jl to version 0.6.0 (related to @jling’s idea)
- Support Typst in Handcalcs.jl
- Update Typst\_jll.jl to version 0.13.1

---

<div class="post-metadata">

**Author:** ![kellertuer](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/kellertuer/32/220707_2.png) [@kellertuer](https://discourse.julialang.org/u/kellertuer)\
**Post date:** [July 26, 2025, 10:24am UTC](https://discourse.julialang.org/t/juliacon-2025-hackathon-ideas/130956/15 "2025-07-26T10:24:31Z")

</div>

**Will do**

- brainstorm about the internals of Manifolds.jl to simplify the current traits system, since that does only help little and yields annoyingly complicated error messages – with @mateuszbaran
- Check the JuliaManifolds ecosystem to switch to Runic.jl as code formatter
- maybe look at the hardware ideas from above, though I only have old(ish) Raspberry Pis at home

…and maybe give Typst another try

---

<div class="post-metadata">

**Author:** ![jules](https://avatars.discourse-cdn.com/v4/letter/j/41988e/32.png) [@jules](https://discourse.julialang.org/u/jules)\
**Post date:** [July 26, 2025, 11:24am UTC](https://discourse.julialang.org/t/juliacon-2025-hackathon-ideas/130956/16 "2025-07-26T11:24:33Z")

</div>

Regarding Makie and Typst, I’d be interested in finding out whether the Typst library could be coaxed somehow to spit out glyph and linesegment information in a format we can use in Makie’s backends. Then we could maybe use Typst as an option to format `text` in Makie. I find that much more likely to work reasonably well given Typst’s speed than any LaTeX solution.

---

<div class="post-metadata">

**Author:** ![jballanc](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jballanc/32/328_2.png) [@jballanc](https://discourse.julialang.org/u/jballanc)\
**Post date:** [July 26, 2025, 11:33am UTC](https://discourse.julialang.org/t/juliacon-2025-hackathon-ideas/130956/17 "2025-07-26T11:33:25Z")

</div>

I’d be very interested in working with anyone on making locally running models more usable from Julia. A few specific areas I’d like to work on:

- Enable `Transformers.jl` to load the latest HuggingFace models (like “nvidia/OpenReasoning-Nemotron-32B”)
- Improve the ability of `PromptingTools.jl` to use tools with Ollama models (currently tool use requires proxying local Ollama models via the OpenAI scheme, which is slightly uncomfortable and partially broken)
- Integrate tool-calling/MCP with `JustSayIt` (may require one of these first two to work first, though)

---

<div class="post-metadata">

**Author:** ![asinghvi17](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/asinghvi17/32/8272_2.png) [@asinghvi17](https://discourse.julialang.org/u/asinghvi17)\
**Post date:** [July 26, 2025, 12:26pm UTC](https://discourse.julialang.org/t/juliacon-2025-hackathon-ideas/130956/18 "2025-07-26T12:26:55Z")

</div>

Things i will be working on:

- Interactive dashboard to tune Quanser robot pendulum control parameters
- Wrapping Google’s s2 library in a C API that we can use from Julia, for spherical geometry
- Getting that spherical wrapper integrated into GeometryOps via an extension
- Improvements to GeoMakie for satellite things (sorry @ffreyer, this will involve arbitrary `model` matrices :D)
- Refactoring the Makie text pipeline to also accept scatter plots with @jling
- Stretch goal: trying to get GeoMakie’s GeoAxis to have better ticks, one projection at a time

But if anyone has any questions about Makie, Documenter, etc., feel free to grab me!

---

<div class="post-metadata">

**Author:** ![jakobjpeters](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jakobjpeters/32/207797_2.png) [@jakobjpeters](https://discourse.julialang.org/u/jakobjpeters)\
**Post date:** [July 26, 2025, 1:20pm UTC](https://discourse.julialang.org/t/juliacon-2025-hackathon-ideas/130956/19 "2025-07-26T13:20:40Z")

</div>

A few of us (@asinghvi17) discussed this, and think it might be done by wrapping [typst-layout](https://github.com/typst/typst/tree/main/crates/typst-layout) in a jll.

---

<div class="post-metadata">

**Author:** ![asinghvi17](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/asinghvi17/32/8272_2.png) [@asinghvi17](https://discourse.julialang.org/u/asinghvi17)\
**Post date:** [July 27, 2025, 2:08am UTC](https://discourse.julialang.org/t/juliacon-2025-hackathon-ideas/130956/20 "2025-07-27T02:08:03Z")

</div>

Naturally I got very little of this done. But huge thanks to @jpsamaroo for looking at my not-so-great RangeExtractor.jl code and giving me some solid advice on how to shape it up!

Claude created a C API for s2 but it was horribly inefficient, so I’m trying the HEP crew’s WrapIt.jl library instead. Hopefully that works well.

[Next page](https://discourse.julialang.org/t/juliacon-2025-hackathon-ideas/130956.md?page=2)
