• What are you working on? November 2015
    964 replies, posted
trying out a new attack [IMG]http://vgy.me/30WmSa.gif[/IMG]
[QUOTE=UchihaItachi;49133995]Working on my maths at the moment because its dog shit. Just wanted to know, what sort of level of maths dose everyone else have?[/QUOTE] I studied physics for a while, so a bit less than Fourier I'd say. (I really need to brush up on all the holes in my knowledge though. I can't say it's anywhere near comprehensive.) You need quite a bit of this if you want to study computer science (in Germany) too, at least the basics up to integrals (+ discrete logic and so on, which is taught earlier this way).
[QUOTE=UchihaItachi;49133995]Working on my maths at the moment because its dog shit. Just wanted to know, what sort of level of maths dose everyone else have?[/QUOTE] I had engineering math for the first year of my bachelor, but there's not that much math left (got 2 semesters left after this one). So some matrix math, Fourier transformation, Laplace transformation and Taylor series. Most of the math I learned was to be used for electrical circuit engineering and digital signal processing, but I haven't really used it that much outside of those fields yet.
Console program I've been working on needed a logical way to display data to the user. So obviously I made 4. List, Table, JSON, and CSV (the latter two being for redirection to file). MSVC C++ is actually pretty nice once you get used to it. Here's a screenshot of the 'table' format. It colors the data appropriately, fits the table within the console buffer (as best it can - if a table is forced wider by a string longer than the buffer width it will warn the user that the following table will be too big). Used codepage 437 for the box characters. Lots and lots of metrics to calculate.. If it detects that the target of stdout isn't a TTY terminal it will use ASCII characters instead. If a single column contains only Object types or Lists of Objects it will split it out into a subtable. There's a command line flag to limit the depth. The data providers don't know what format the output will take, and report their findings in a common format that all four formatters can display. The only limited format is CSV, which obviously can't do subtables. [t]http://i.imgur.com/19PF4Ai.png[/t] [QUOTE=Donkie;49135165]Been touching up the [URL="https://github.com/Donkie/WorkClocker"]WorkClocker[/URL] app I made a while ago![/QUOTE] Hey, that looks familiar! :D
[QUOTE=mastersrp;49135191]Not where I come from. Knowledge means nothing if you've got nothing to show for it, and no degree doesn't help. It makes it pretty difficult to be 25 or less and have 13 years of programming experience. Experience is really what counts in most areas I've heard of. I was lucky that when I got to be where I am now, I met the boss face to face and got to explain to him what I know, what I love to work with, and so on, and so, him seeing the (in his own words) potential that I could bring, he decided to let me in, although it wasn't something they'd ever done before. I feel lucky to be where I am, but at the same time I maintain that the company is also lucky to have me on board. I just wish more companies would do this. Where I live, they really don't.[/QUOTE] It might be similar in Denmark and Germany. Here you get paid [I]a lot[/I] more if you have a degree (and for each degree level).
[QUOTE=Tamschi;49135437]It might be similar in Denmark and Germany. Here you get paid [I]a lot[/I] more if you have a degree (and for each degree level).[/QUOTE] Well, there's not really any laws for this, but it applies in Denmark as well, depending on unions and shit. If there's no union agreement at your company though, they're pretty much free to do whatever they want.
I was told I should pursue a PhD because "in 10 years it'll be as if you never went to school" (getting my MSc. Physics this year). Quite the comforting thought because I'm not sure if I could get a scholarship... Although I agree that for research purposes you know jack shit with a master's degree in physics, you mainly have lots of useful and diverse tools to solve problems but your knowledge is insufficient to really understand the forefront of any subfield. Degrees are quite important here in Belgium. They probably don't even respond if you don't live up to the job profile (highly depends on the type of field though). Also math level about the same as Fourier, with some more numerical methods emphasis because I like that :v:
Just rewrote one of the oldest and most nightmarish parts of the Rant codebase, the output system. It was stopping me from implementing some features I needed, so I said "fuck it" and spent two hours on it. It's so much cleaner now. Refactoring feels good.
[QUOTE=41 the Number;49135191] Also math level about the same as Fourier, with some more numerical methods emphasis because I like that :v:[/QUOTE] Your math level is stronger to be honest.
Made a program to parse comments in cpp files to turn this [img]http://files.facepunch.com/garry/a969ca23b/2015-11-18_09-28-00.png[/img] into this [img]http://files.facepunch.com/garry/570b01941/2015-11-18_09-28-22.png[/img] so we can do this [img]http://files.facepunch.com/garry/ab961305c/2015-11-18_09-29-02.png[/img]
[QUOTE=garry;49138385]Made a program to parse comments in cpp files to turn this [img]http://files.facepunch.com/garry/a969ca23b/2015-11-18_09-28-00.png[/img] into this [img]http://files.facepunch.com/garry/570b01941/2015-11-18_09-28-22.png[/img] so we can do this [img]http://files.facepunch.com/garry/ab961305c/2015-11-18_09-29-02.png[/img][/QUOTE] That is really clever. I'm surprised I haven't seen this technique used before for writing managed wrappers.
[QUOTE=garry;49138385]:snip:[/QUOTE] Wait, do i smell the source engine and .NET here? :joy:
[QUOTE=cartman300;49138510]Wait, do i smell the source engine and .NET here? :joy:[/QUOTE] I'd guess unity [editline].[/editline] [img]http://i.imgur.com/SlTayqC.png[/img] Guess not. :v:
[QUOTE=Berkin;49138421]That is really clever. I'm surprised I haven't seen this technique used before for writing managed wrappers.[/QUOTE] It kind of exists, but the systems I found (like SWIG) are pretty intimidating. I didn't really need all the stuff they provide, and didn't want to introduce all the extra dependencies. This is 3 files of dirty c# so it's pretty easymode.
Progress? [T] http://i.imgur.com/bchAiul.png [/T] (Super Mario Land) Now to just figure out why each rom I load is trying to write to an unused memory location...
[QUOTE=Berkin;49138421]That is really clever. I'm surprised I haven't seen this technique used before for writing managed wrappers.[/QUOTE] I wish i din't have to write wrappers at all, automatically generating wrappers based off C++ header files doesn't seem unreasonable to have as an Visual Studio feature.
[img]http://i.imgur.com/SWnyhdI.png[/img] [img]http://i.imgur.com/jUwCgTa.png[/img] [img]http://i.imgur.com/hQUlhl8.png[/img] It's a small tool that checks for the latest version of your program directly from github release page. All you have to do is supply the username and repository. Currently working on a way to automatically detect what's the latest version without keeping the version string offline for reference because let's be honest, nobody likes to manually update it each time. Checking the file creation date against the github release publish date seems like a good idea. Also i eventually want to add a function that automatically downloads and extracts the files. [url]https://github.com/cartman300/Gitdate[/url]
[QUOTE=chaz13]I'm writing up a huge post on rigid-body point cloud registration. It's not 100% finished yet, but check it out if you're interested! [url]http://thingsiamdoing.com/global-markerless-rigid-body-point-cloud-registration/[/url] [img]http://thingsiamdoing.com/wp-content/uploads/2015/10/reg1.png[/img] [/QUOTE] Finally got up to posting a related thing I'm doing for my internship: partially overlapping point cloud registration. The point clouds stem from structured light scans (think Kinect, but a little different) of obese people. Why obese people? It's something with an app that would predict what your body would look like based on the current shape (lots of parameter estimation of 3D surfaces and whatnot). It's to motivate people to stick with their weight loss program. Anyway, it's a big project that they let me participate in and my task is to find a way to turn these partially overlapping scans, like: [img]http://i.imgur.com/UjmKowo.png[/img] into [IMG]http://i.imgur.com/2vd5AVd.png[/IMG] (completely automated). There's 8 of these scans, because the people stand on a platform that rotates with 45 degree intervals. Succesfully registering all 8 gives you a complete point cloud that can then be reconstructed with [URL="http://research.microsoft.com/en-us/um/people/hoppe/poissonrecon.pdf"]Poisson surface reconstruction[/URL] (shit's neat, solving Ax=b in a way gives you a smooth watertight 3D surface, I'm actually gonna implement it myself for a Multigrid course project in the near future). There's loads of difficulties in the registration though (in order of what has bothered me the most): 1)each scan will be rotated 45 degrees with respect to another, this rotation is about an unknown axis (the person will move a little, won't stand in the exact middle of the platform,...). I've tried loads of fancy vector tricks and statistics and PCA to find that damn axis, not sure if I'll ever figure this out. There's too much noise to infer the axis from the knowledge of the rotation angle and the way the scans relate. Finding that axis basically makes the rest a breeze, because Iterative Closest Point works fine when the point clouds are very close to being registered. 2)the edges of scans will be very messy, messing up the Poisson Reconstruction (fixed this by throwing out "crappy" (skewed) quads) 3)the people who make the scans think they solved 2) by just cutting away huge parts of the point clouds, this results in a skewed center of mass, which makes rough registration as described by chaz13 nearly impossible 4)because 1),2) and 3) ICP might find a local minimum instead of the absolute (correct) minimum, i.e. it might register the clouds incorrectly because it bases its fitting on some distance metric that does not care about context but purely the distance of all points . 5) Local clusters of shitty crappy quads that have no business existing 6) Windows paths using backward slashes (I know it's historical but still it annoys me that I have to write a function that fixes this) Anyway I've written loads of crap that's on my GitHub (transform functions, cropping functions, index remapping functions, export/import functions, oh god...). I'm particularly proud of a function that removes a certain percentile of quads based on their skew angle (really skewed quads are bad and are most likely part of the edge of the mesh). Removing quads isn't straight forward though because this means that all the quad data needs to be relabeled. (I know I reinvented the wheel but I did it myself :v: ) Also a Matlab function that imports huge OBJ files that has a pretty reasonable speed (couple of minutes, though Meshlab still does it in 10 seconds). fgetl() is dreadfully slow in Matlab... Now trying to get that PCA+center of mass shit to work. [B]Edit:[/B] fancy orbiting camera thing, the axes are the principal components. It seems straightforward but aligning these axes (and thus the points) will not result in a decent alignment. [vid]http://dl.dropboxusercontent.com/u/17216535/ShareX/2015/11/2015-11-18_17-34-25.webm[/vid] [B]Edit:[/B] Okay they do succesfully align given that they a priori have enough variance in xyz directions, side scans will be more cylindrical and PCA alignment will not work in the xy plane. I might be able to fix this by cropping the data even more so PCA becomes more accurate again. It's not very elegant though (I'd like the algorithm to be "agnostic" about the point clouds but I think I'm far past that point anyways).
So, I updated one of my projects yesterday to work with the retail version of Star Wars Battlefront, which enabled modding and the ability to host and join fully local dedicated servers using nothing but the retail game files (along with my patches of course, more info in the video description.) [media]https://www.youtube.com/watch?v=6mQZwiyV26Y[/media] It was interesting, because since the beta they introduced some changes that seem like they serve no other purpose than to make my life harder and prevent me from doing something like this (hint: it didn't work.) On top of that, the added challenge of dealing with a more aggressive Denuvo (compared to the beta at least) made this a bit more entertaining. This was mostly to entertain myself on day-0 of the SWBF launch, and to slightly piss off EA. Now, even though this doesn't enable piracy (since it doesn't really touch on the DRM), I don't really intend on releasing anything anytime soon, EA is already up my ass enough as it is.
[QUOTE=Rocket;49139496]Please tell me you're adding C# to Garry's Mod. Then I might be able to write gamemodes for gmod without suffering from numerous mental breakdowns.[/QUOTE] He's "probably" not doing this for the current version of Gmod, but the sequel? They kinda announced that they're toying with a new Gmod, so who knows..
[QUOTE=Number-41;49139367]Math magic for fat people[/QUOTE] Looks really awesome stuff. I'd love to do stuff like this someday, but first I need to get rich as fuck.
[QUOTE=garry;49138385]Made a program to parse comments in cpp files to turn this [img]http://files.facepunch.com/garry/a969ca23b/2015-11-18_09-28-00.png[/img] into this [img]http://files.facepunch.com/garry/570b01941/2015-11-18_09-28-22.png[/img] so we can do this [img]http://files.facepunch.com/garry/ab961305c/2015-11-18_09-29-02.png[/img][/QUOTE] This will theoretically allow LuaJIT support via FFI, too.
[QUOTE=Fourier;49140000]Looks really awesome stuff. I'd love to do stuff like this someday, but first I need to get rich as fuck.[/QUOTE] Not necessarily for fat people, robots with spatial awareness need almost exactly the same technology. Perhaps the army too :v: now [I]there[/I]'s a way to get rich...
-snip I am a shitty ghost with no significance in life-
[QUOTE=Map in a box;49140153]This will theoretically allow LuaJIT support via FFI, too.[/QUOTE] We like to call it LuaShit
I'm going to miss metatables, but I think C# is a good choice (built-in hook system!). It's time I learned it.
[QUOTE=garry;49138385]Made a program to parse comments in cpp files to turn this into this so we can do this [/QUOTE] Kinda reminds me of [url=https://www.reddit.com/r/gamedev/comments/3lh0ba/using_clang_to_generate_c_reflection_data/]this[/url]. While not the same this guy used libclang to parse his C++ source files to generate reflection data for his game. In this example he uses a decorator macro that's used similarly to a C# attribute. Unreal Engine also has a similar concept with UCLASS, UPROPERTY and UFUNCTION.
[QUOTE=cartman300;49138510]Wait, do i smell the source engine and .NET here? :joy:[/QUOTE]Do I smell the Garry's Mod sequel?
[QUOTE=SteveUK;49141060]Kinda reminds me of [url=https://www.reddit.com/r/gamedev/comments/3lh0ba/using_clang_to_generate_c_reflection_data/]this[/url]. While not the same this guy used libclang to parse his C++ source files to generate reflection data for his game. In this example he uses a decorator macro that's used similarly to a C# attribute. Unreal Engine also has a similar concept with UCLASS, UPROPERTY and UFUNCTION.[/QUOTE] That exact approach is also covered by Valve in a GDC talk here, [url]http://www.gdcvault.com/play/1020065/Physics-for-Game-Programmers-Debugging[/url]
I created a SIMD-optimized image generation system. The image is divided into a 4x1 pixel grid so that the SIMD registers can perform operations on four pixels at the cost of one. Each 4x1 grid runs om a separate thread. Currently the only input is the pixel's position [0.0 - 1.0]. The result is stored on disk in a bitmap. I just threw some sine functions together. [code] void shader(const vec2<f32>& pos, vec3<f32>& color) { color.r = abs(sin(pos.x * PI * 50.0f) * sin(pos.y * PI * 50.0f)) * (sin(pos.x * PI) * sin(pos.y * PI)) * 0.4f; color.g = (abs(sin(pos.x * 4.0f) * sin((pos.y + 0.5f) * 0.3f)) + tan(pos.x * 20.0f) * 0.2f) * 0.5f; color.b = (sin(pos.y * 0.4f) + sin(pos.x * 50.0f) * cos(pos.x * 20.0f * pos.y - 1.0f) * 0.1f + abs(sin(pos.x * 50.0f / pos.y) * 0.2f)) * 1.5f; } [/code] Result: [IMG]https://puu.sh/lqncN/a34edebf1e.jpg[/IMG] Apparently my bitmap writer is broken. That's probably what those black artifacts are. [IMG]http://puu.sh/lqnjg/e2bc2e822a.jpg[/IMG]
Sorry, you need to Log In to post a reply to this thread.