What project(s) would you like to make some day?

What project(s) would you like to make some day?
I go first:

1 — An IMGUI library

I once worked on a imgui library for processing.

This was an extensive research where some of the things I did / researched was:

  • use the terminal to display the UI (and use it…)
  • lazy mode where it would do minimal checks to see if an update was needed
  • swappable integrations for the design (including logic handling)
  • layout on the go vs at the end of the frame

This is actually the biggest project I ever worked on and my findings are a bit of a mess.
Doing this in Odin gives me refreshed energy to revisit my traces.

One additional goal I have now is to make it work with WASM. I hate the web but I can’t get around it so this might make it more of a breeze.

2 — Terminal Renderer

I made a terminal renderer before, again for processing.
https://github.com/clankill3r/p5_terminal_graphics

It’s nothing big, I would like to make one with Odin too, only I have a different plan this time so I can get even better edges.

3 — Odin Refterm

I think most of us here have seen https://www.youtube.com/watch?v=hxM8QmyZXtg&list=PLEMXAbCVnmY6zCgpCFlgggRkrp0tpWfrn&ab_channel=MollyRocket

where Casey Cmuratori shows that a terminal should literally be able to render fullscreen color with thousands of fps.

I tried so many terminals and they are all slow, the ones that have a optional to make use of the GPU often run faster when you disable the GPU setting. When Casey made refterm I really hoped people would jump onto it and contributed in actually making it a valid option to use as a terminal. This won’t be my goal either but I do think it’s a nice project to learn and hopefully someone continue to develop it someday.

(If I’m lucky someone makes a proper terminal emulator before that)

There is a lot more I want to make but I choose to only list those 3 for now.
So please show me your projects! (You could also show what you work on if it’s in an early stage.)

8 Likes

I have a project to extend the odin cli

Nopm (Not Odin Package Manager)

Initially, the idea was purely to just wrap git, to download dependencies from git (without dependency management or something like that), but now it can also create a new package, generates settings for ols and odinfmt, now I’m still working on the install command, similar to go.

In the future, I also want to use it to install and update the odin compiler.

And also, perhaps, embed a binding generator to C

(This post was translated automatically, I apologize if there are any errors)

I don’t have anything specific in mind at the moment but I’d love to one day regularly work on installations or just general projects involving graphics programming that’s a more creatively oriented. I’ve always loved the kind of work folks like FIELD, onformative or Rhizomatiks have done.

Unfortunately I got roped into doing regular web work(think static sites or SaaS apps) just to pay the bills after college so it’s been a bit difficult to try and make the transition :cry:

@sortofsleepy I did my internship at Onformative :slight_smile:

I think if you do web work it could pay off to follow the gordon stream that ginger bill did to use WASM with odin.

Also if you like graphics programming, for me the book visualizing data really helped me.
It’s a book I often recommend to students that say they can understand code when they read it but have problems when they have to create a project themself. I’m pretty certain your skill level is a lot higher since you use odin and not python or something.
But I still think the book is worth it’s money. It’s made by one of the creators of processing.
If I would follow the book now I would try do do it in Odin with raylib or something where possible. There might be a few bumps on the road with that approach tho, like loading and using a svg, and the use of a treemap library. The treemap library is likely interesting to port tho.

https://www.amazon.com/exec/obidos/ASIN/0596514557/ref=nosim/benfrycom-20

3 Likes

Yep! Definitely something I’ve been slowly watching.

Thank you for the suggestion! I’ll be sure to take a look.

Sometimes I dream about making an editor for high res images. For drawing in layers with tablet and all that.

Something very nice and snappy.

Everytime I use Photoshop or Affinity Photo and the performance gets sad I think of this. There literally are no user-friendly and high performance alternatives.

5 Likes

I am surprised you get bad performance with Affinity, it has always been flawless for me (I use mainly Designer tho)

1 Like

When you start doing big enough things, it does slow down. It’s better than Modern Photoshop, but worse than say CS4.

2 Likes

Something like first person Nethack, with realtime combat.

Any kind of RPG really.

So many game ideas, so little time.

I want to do something similar, make drawing/painting software. One like clip studio paint, procreate or paint tool sai, and maybe a simple animation system added on. But I still don’t know enough to do that yet, I’m definitely working towards that though.

I’ve just started learning the language, but it’s already sparked some ideas. I do a lot of tooling in my day job mostly with Python. Some of them I would like to redo in Odin for performance because I really don’t want to go back to C (the language I really programming back in the '90’s for me).

I’d like to make a first class odin implementation for YAML without the libyaml dependency even if GingerBill isn’t a fan of YAML :grin: I use it too much these days and other projects use it as well.

There are some game ideas I have particularly in the realm of remaking some of the classics from the '80’s and '90’s.

2 Likes

There’s nothing to keep you from making your own YAML parser in Odin and distributing it, but if you want to do it solely for core, it’s worth it to ask if it would be welcome, if you’re aware it’s something Bill doesn’t like.

I remember briefly skimming the YAML spec, and it seemed to be quite a lot for what could be better done in INI (at least for my own concerns at the time when I was reading through it).

If you do choose to write your own parser, then I have to say it’s one of the best general-purpose projects to write. Almost every complex program involves parsing to some degree and at some level: game engines, compilers, databases, virtual machines, and more.

1 Like

It’s not a matter of whether or not INI would be better, but that YAML has gained a lot of traction in a wide variety of areas in software development. Having tooling written in ODIN that can interface with existing YAML files would be beneficial much like JSON and XML. For example, GitLab and ADO have YAML as their defacto method of describing pipeline configurations, Ansible use it for system configuration management, and Kubernetes and Docker-Compose use it for container orchestration configuration, just to name a few in areas I work.

1 Like

Haven’t decided on the programming languages I’m going to use for this yet, but I’m thinking of writing a simple git server, a la gitea.

2 Likes

I recently got an idea to make minimal music creation app focused on module music like tracker but also support some modern daw features like pianoroll, i think odin + raylib could do something like this