It’s an instagram style UI but for scrolling through record releases and snippets, worked on making it responsive as possible with low latency audio playback so you can browse a lot of stuff quickly.
Looks really nice, the widgets are great and run well on my phone. Is it a real time ray tracer doing the rendering? Still amazes me these days what’s possible in browsers or on a phone.
I live in London, it is expensive for sure.. I have seen some pretty ridiculous flats for around the same cost as the one in the article, one with a shower cubicle in the bedroom comes to mind... not quite as bad as toilet but still you don’t want a wet bedroom.
Some of the landlords are just taking the piss, there are much better places for better value in decent areas just don’t get tricked by the snakey estate agents like foxtons and look around you can find reasonably good value..
I wanted to share my c++ maths library have been adding to for quite a long time now, There are lot of other available maths libraries but I have enjoyed developing and maintaining this over the years since.
As a graphics programmer it has been a good learning experience to implement my own maths library from scratch because linear algebra is such an integral part of my job, I also learned a lot about template programming to implement the types and also the vector swizzles.
A lot of other available maths libraries provide matrix, quaternion and vectors.. but not as many provide a vast collection of geometric intersection and overlap tests as my library does.
Additionally other maths libraries may be SIMD implementations, this library is all scalar and that is my intention all along. I favour the portability and simplicity of the scalar implementation.. I do like SIMD for sure but find that code can be optimised to much greater effect by writing entire algorithms in SIMD and not relying on the underlying vector / matrix SIMD implementation.. this is due to often a large number of horizontal operations may be necessary in certain algorithms.
This may be a bit dated now, but my experience with SIMD vector implementations on PowerPC were very inefficient because of general use games / graphics code often wants to access and set single vector elements and get them into floats and it would cause load hit stores and massive performance penalties, so then you require the scalar float in vec type and add all that additional complexity.
Anyway.. I hope people might find this useful if you are looking for a simple c++ maths library packed with great features for graphics and games :)
Yeah, in hindsight maybe we could just switch to YAML but it does have quite a lot more syntax.
Jsn started as a python function which removed comments and fixed trailing commas. YAML does not come bundled with python and is an external dependency..
I suppose looking at it now jsn grew to a point where using something else in the first place would have been less work :)
This project came about because we were using json a lot for it’s for simplicity and also widespread support in languages and tools we were using.
We started hand editing a lot and making more mistakes, but we have a lot of code generated json from build pipelines and use json with a number of different libraries in different tools already so didn’t really want to switch to yaml or toml.
Jsn is not meant to replace json, we are still using json a lot natively, we just can write config files more easily and jsn spits out fully compliant json for you, or you can use a python dict the same as json.
Jsn does not have a serializer, once it has been parsed it is json.
I will take a look into it, if people think it would be useful it might be a nice feature to add. I haven’t really used webgl myself so not sure on the difference between that and GLSL version 330. I drew a line at GLSL 330 / Shader Model 3 for now because it makes graphics API backends easier to implement and more consistent.. Keep an eye on the repo in future :)
We do a lot of the work ourselves with our own engine used for games, 3D graphics, video playback and editing tools. Targeting all desktop, mobile and console platforms.
Using c++ we have a quite minimal amount of platform specific code by making tight abstractions and trying to work on shared code as much as possible.
We use open source where possible to save time and repeated work. Using things like ImGui for Ui..
But all platform specific things we abstract ourselves (window creation, graphics apis, video decoders, input, timers, threads etc)
I have worked on proprietary game engines for over 10 years and while it may sound a lot of work to reinvent the wheel, when you know how and can do it well the end of cycle development can be a breeze when everything is bespoke to your needs...
alternatively I have worked on products using unity, qt and other frameworks and have spend months of optimisation grinding to ship..
We use C++ and care about real time performance, but also use this JSON library, the thing is that we use JSON for loading and configuring data which happens during load time which is infrequent and don’t need JSON during the critical update path.
Previously we used rapid json which is faster but the syntax of the nlohmann json is nicer and it is much quicker to develop with.. we also use python a lot so the familiarity between the 2 is also useful, some of the other C++ json libs can have quite convoluted api’s for dealing with values, objects and arrays.
It’s an instagram style UI but for scrolling through record releases and snippets, worked on making it responsive as possible with low latency audio playback so you can browse a lot of stuff quickly.
Wrote about it on my blog: https://www.polymonster.co.uk/blog/diig
And GitHub repo: https://github.com/polymonster/diig