simon_brooke, to gamedev
@simon_brooke@mastodon.scot avatar

OK, then, new GitHub repository, simulated-genetics, looking at the problem of generating thousands of character models for games, while ensuring that characters who are supposed to be related to one another have similar appearance.

This is very, very pre-alpha, but far enough along to be interesting.

#GameDev
#Clojure
#MakeHuman

https://github.com/simon-brooke/simulated-genetics

borkdude, to random
@borkdude@mastodon.social avatar

#scittlecljs can now be used in webworksers and Node.js, etc as well (as I've made the hard dependency on js/document in a browser optional)

#clojure #clojurescript

simon_brooke, to python
@simon_brooke@mastodon.scot avatar

The available open source libraries for generating human models (MakeHuman, ManuelBastioniLab) appear to be written in . I need something like this, but I'm working primarily in . I'm wondering whether it would be easier to load one of the existing libraries into Jython and try to call that from , or just to bite the bullet and build my own from scratch.

Opinions, anyone?

weavejester, to random

Released Integrant 0.9.0, a #clojure dependency injection micro-framework. Adds expand-key and assert-key, along with a couple of breaking changes. https://github.com/weavejester/integrant

mykhaylo, to emacs
@mykhaylo@fosstodon.org avatar

This is new version of the previous #emacs package. Context specific transient menus. This must be super-convenient.

https://github.com/licht1stein/context-transient.el

mykhaylo,
@mykhaylo@fosstodon.org avatar
simon_brooke, to gamedev
@simon_brooke@mastodon.scot avatar

More on recent blog entries: my thoughts on choosing the right game engine for me. It may not be the right choice for you...

#Clojure
#GameDev

https://www.journeyman.cc/blog/posts-output/2024-04-18-the-game-engine-problem/

furmans, to FunctionalProgramming

We are super glad to inform you that LAMBDA WORLD CADIZ is BACK...

🗓️2-4 October 2024
📌Palacio de Congresos de Cadiz
🎟️Early Camarón at €150
🪩lambda.world

#functionalprogramming #Scala #Erlang #Haskell #Clojure #Kotlin #fsharp

Should the best Rock-Funky-Hard SolYNaranjaS band make a noise there...? Should not ?

mykhaylo, (edited ) to emacs
@mykhaylo@fosstodon.org avatar

Made an #emacs library to easily define git repo specific #transient menus:

https://github.com/licht1stein/context-transient.el

I use it a lot for #clojure projects

simon_brooke, to random
@simon_brooke@mastodon.scot avatar

#Clojure folk, are you (or is anyone you know) making serious use of Clojure CLR (the port of Clojure to Microsoft's dot-net virtual machine)?

Is the project stable? Is there a good community, good tooling? Is anyone using it in production?

technomancy, to random EN
@technomancy@hey.hagelb.org avatar

one thing that I appreciate in is the ability to learn from the history of lisps

made a big splash and gathered criticism from the Old Guard of lispers by using parens a lot more sparingly than Common Lisp or Scheme; for example let bindings are done inside square brackets instead of a double-layer of parens:

(let [x 1 y 2] ...)

vs

(let ((x 1) (y 2)) ...)

apart from just being tidier, this had the benefit of greater consistency: in Clojure, when you saw an open paren, it usually meant a call to a function or macro, instead of ... some other structure in the language

however, Clojure still had plenty of exceptions to this; I think last I counted there were 7 or 8 distinct things an open paren could mean

in Fennel, we decided that wasn't what we wanted; parens always mean a call to a function/macro ... or in a binding context it could mean binding multiple values:

(local (ok val) (pcall my-function x y z))

but could we do better?

simon_brooke, to debian
@simon_brooke@mastodon.scot avatar

#Debian 12 -- current stable -- provides Gradle 4.4.1. The current stable version of Gradle is 8.7.

Yes, the reason I choose and use Debian is because it is conservative, which means things don't break often. But that seems wildly out of date!

https://packages.debian.org/search?keywords=gradle

https://gradle.org/install/

simon_brooke,
@simon_brooke@mastodon.scot avatar

<sigh>
And when I install the latest Gradle, I still get failures, because the Gradle scripts of the current version of jMonkeyEngine (which is what I'm trying to build) are too modern for Gradle 4.4.1 but too old for Gradle 8.7.

Now I remember why I do everything in #Clojure these days: very stable APIs!

lobocode, to Lisp

In my ignorance, I didn't have faith in #LISP because it is a very old programming language, and in my circle of acquaintances and friends, I never saw anyone using it. Behold, as almost always, I was wrong!!! What magnificent language. It's no wonder that #Clojure is there!

turbobureaucrat, to python Russian

At work, I am engineer, but after it, I spend my time with . Today my friend, engineer, wrote about purely C-like syntax that it looks like . I couldn’t stand this and sent him a picture of some Clojure code, which indeed looks like Lisp. I received the following image back from him. So the question is, should we talk about the brackets-blindness symptoms here?😃

@geeky

lobocode, to Lisp

Conducting a small experiment using #Lisp instead of #shell script. Reason? Mere curiosity.

simon_brooke,
@simon_brooke@mastodon.scot avatar

@lobocode

@borkdude's #Babashka #Clojure interpreter can also be used pretty effectively as a shell.

lobocode,

@simon_brooke Hey buddy, checked out #Scheme/#Scsh yesterday, super intriguing stuff. Actually, I've been digging into #Lisp and its dialects lately. Got curious about why there are so many dialects, you know?

Recently dabbled in #Clojure, which got me looking at Lisp in a new light. Unlike #Haskell, which is awesome for sure, #Lisp has been out of academia and in the market for quite a while... found it pretty cool.

mluts, to random
@mluts@lviv.social avatar

Don't even know where to start. I'm working with "integrant" in #clojure project and every bit of state is managed, I can start/stop/suspend/resume, #repl experience and testing is fantastic.

Is such technique unique and happens only in clojure?

mykhaylo,
@mykhaylo@fosstodon.org avatar

@mluts yes, I have exactly the same problem in Python with sqlalchemy. Shared global session is great when it works. #integrant and #clojure are definitely spoiling us :)

simon_brooke, to gamedev
@simon_brooke@mastodon.scot avatar

H'mmm... my NPCs are unhappy...

user=> (def pw2 (map-world pw (vary-meta (fn [w c] (populate-cell w c)) assoc :rule-type :ad-hoc )))
#'user/pw2
user=> (count (flatten pw2))
40000
user=> (def inhabited-cells (filter :npcs (flatten pw2)))
#'user/inhabited-cells
user=> (count inhabited-cells )
1603
user=> (defn happy-cell? [c] (every? #(> (:disposition %) 2) (:npcs c)))
#'user/happy-cell?
user=> (count (filter happy-cell? inhabited-cells ))
3

#GameDev
#OpenWorld
#Clojure

simon_brooke,
@simon_brooke@mastodon.scot avatar

(Actually, it turns out that almost a quarter of my NPCs have a happy disposition (which you'd expect, given the range is -4...+4):

user=> (def npcs (flatten (map :npcs inhabited-cells)))
#'user/npcs
user=> (count npcs)
6412
user=> (count (filter #(> (:disposition %) 2) npcs))
1407

But since every inhabited cell is initialised with four inhabitants, the number of cells all whose inhabitants have a happy disposition is... small!)

#GameDev
#OpenWorld
#Clojure

simon_brooke, to random
@simon_brooke@mastodon.scot avatar

I was playing with my random name generator just now, and it came up with 'Nohurraeliy' as a female name.

What is it that makes me think she'd be a very laid back individual?

https://github.com/simon-brooke/wherefore-art-thou

simon_brooke,
@simon_brooke@mastodon.scot avatar

In other news, wherefore-art-thou now supports arbitrary genders -- 'male' and 'female' are supplied as default, but as data, not hardwired into the code, so you can add as many others as you want, or remove male and female if you want to.

#GameDev
#Clojure

https://github.com/simon-brooke/wherefore-art-thou/commit/3dc4d3d262cef9f2e6f6bb0c7d3ae1096c0e5afd

rml, to Figma

I'm happy to say that ever since I started using Flatpak's desktop package, its become one of my favorite programs and I use it every day day now. And it just got a slick new upgrade. So now I finally have a application in my daily repertoire.

Way better than , which has become total garbage ever since bought it.

simon_brooke, to gamedev
@simon_brooke@mastodon.scot avatar

Right, so, visualisations of Galloway

  1. About 5,000 years after the ice has melted, with widespread forest;
  2. About 5,000 years after that, after 200 generations of human settlement.

This is pure simulation, not actual data; but the land it shows as flooded is either still lochs and wetlands, or land we know has historically been drained. The areas of settlement are plausible, and map onto historical settlements.

#GameDev
#OpenWorld
#Clojure

Visualisation of Galloway at the height of the iron age. Substantial areas of settlement, but not on the lowest land. Still substantial wetlands. Lowland forests largely gone, upland forests remain.

simon_brooke, to gamedev
@simon_brooke@mastodon.scot avatar

Comparison between my simulated drainage for the Isle of Man and the actual on the ground river courses. This is getting pretty good. It isn't yet perfect, but promising!

This is work towards being able to create a complete naturalistic environment from either just a heightmap, or a combination of a heightmap, a rainfall map, and soil permeability map.



https://github.com/simon-brooke/mw-engine/blob/develop/src/cljc/mw_engine/drainage.clj

Map of the Isle of Man showing the output of a rainfall/drainage simulation run. The rivers I've predicted are very much in the right places.

anderseknert, to random
@anderseknert@hachyderm.io avatar

God, I really do miss the #Clojure threading macros in pretty much any other language I work with.

simon_brooke, to gamedev
@simon_brooke@mastodon.scot avatar

I've spent some of today finding bottlenecks in my world-simulating cellular automaton, and I can now simulate 10,000 years of history from the middle of the Ice Age to the middle of the Iron Age over 40,000 square kilometres (at kilometre scale) in slightly under two minutes of wall-clock time. It's utterly caning my poor computer, but it doesn't crash.


The state of my poor computer in the middle of a simulation run. Memory is maxed out (garbage collection is clearly the major bottleneck) and eight of my twelve processor cores are also maxed out.

simon_brooke,
@simon_brooke@mastodon.scot avatar

@pmonks Surprisingly, I'm just using the stock #Clojure map function. About ten years ago, working on this exact problem, I put a lot of work into trying to write my own map functions which I hoped would be more efficient at parallelisation than the standard Clojure implementation; but they none of them were.

It really is astonishingly good.

  • All
  • Subscribed
  • Moderated
  • Favorites
  • JUstTest
  • mdbf
  • ngwrru68w68
  • tester
  • magazineikmin
  • thenastyranch
  • rosin
  • khanakhh
  • InstantRegret
  • Youngstown
  • slotface
  • Durango
  • kavyap
  • DreamBathrooms
  • megavids
  • tacticalgear
  • osvaldo12
  • normalnudes
  • cubers
  • cisconetworking
  • everett
  • GTA5RPClips
  • ethstaker
  • Leos
  • provamag3
  • anitta
  • modclub
  • lostlight
  • All magazines